Giter Site home page Giter Site logo

nri-databricks's Introduction

New Relic Experimental header

GitHub forks GitHub stars GitHub watchers

GitHub all releases GitHub release (latest by date) GitHub last commit GitHub Release Date

GitHub issues GitHub issues closed GitHub pull requests GitHub pull requests closed

Databricks integration for New Relic

Installation

Import the install-nr.py notebook into your workspace and execute it.

This will produce the initialization script that would download, install and configure this integration upon cluster initialization.

The file is written to this path

  • dbfs:/newrelic/nri-databricks-init.sh

Add this initialization script to the list of initialization files for every cluster manager that needs to be monitored.

The following environment variables should be defined in your databricks cluster configuration for the initialization script to create the correct configuration

  1. NEWRELIC_ACCOUNT_ID
  2. NEWRELIC_LICENSE_KEY
  3. NEWRELIC_TAGS:
    • (optional) tags to be added to every newrelic event
    • dirctionary of key value pairs separated by comma for example
      • {"team": "FieldEngineering", "project": "DatabricksMonitoring", "cost_center": "12345"}
      • DO NOT wrapp the dictionary in quotes
  4. NEWRELIC_ENDPOINT_REGION
    • Use "US" for US datacenter and "EU" for EU datacenter
    • If your New Relic account is in the US datacenter the variable is optional

Configuration

The install script produces the configuration in the config.yml file. The following properties are filled in from environment variables or files.

General Configuration

  • run_as_service: True or False. If True, the integration runs as a daemon service every poll interval, otherwise it runs just once.
  • poll_interval: The interval in seconds at which to fetch metrics from databricks
  • log_level: info, debug, warning, critical or error
  • log_file: log file

Spark Connection Configuration

  • cluster_name: name of the cluster
  • cluster_mode: driver_mode or standalone
  • driver_host: spark web UI url
  • conf_ui_port: spark web UI port
  • master_ui_port: spark master UI port

New Relic Connection Configuration

  • api_endpoint: Full URL for the New Relic Event API collector or short cuts "US" and "EU"
  • account_id: New Relic account id
  • api_key: New Relic license key

Other Configuration

  • labels: (optional) labels are tags added to every newrelic event

Support

New Relic has open-sourced this project. This project is provided AS-IS WITHOUT WARRANTY OR DEDICATED SUPPORT. Issues and contributions should be reported to the project here on GitHub.

We encourage you to bring your experiences and questions to the Explorers Hub where our community members collaborate on solutions and new ideas.

Contributing

We encourage your contributions to improve [Project Name]! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project. If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at [email protected].

A note about vulnerabilities
As noted in our security policy, New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.

If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through HackerOne.

License

nri-databricks is licensed under the Apache 2.0 License.

nri-databricks also uses source code from third-party libraries. You can find full details on which libraries are used and the terms under which they are licensed in the third-party notices document.

nri-databricks's People

Contributors

hsinghkalsi avatar matewilk avatar psomareddy avatar ricegi avatar rinzool avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

rinzool

nri-databricks's Issues

Getting ERROR newrelic events collector responded with status code 404

Description

We have found your Repo, as we are using NewRelic, tried to use your repo for Databricks integrations. However, even though we have followed properly, found 2 issues.
First your repo doesn't even start the service properly. We should enable the Tags as environment variables, then it will work.
Second even though we made it to start, it prints some logs however they are not able to parse as events. Giving error line as - Getting ERROR newrelic events collector responded with status code 404
NOTE: # ( Describe the problem you're encountering. )
TIP: # ( Do NOT give us access or passwords to your New Relic account or API keys! )

Steps to Reproduce

Deploy your code on any of Databricks, & try it out.
NOTE: # ( Please be as specific as possible. )

Expected Behavior

Relevant Logs / Console output

2022-11-30 09:40:40,754 INFO Setting New Relic API endpoint https://insights-collector.eu01.nr-data.net/accounts/3661229/events
2022-11-30 09:41:10,791 DEBUG Executing integration
2022-11-30 09:41:10,792 INFO setting spark master_ui_port = 40000

2022-11-30 09:41:10,792 INFO extracting driver_host = Not Shown
2022-11-30 09:41:10,792 INFO extracting conf_public_dns = 40001
2022-11-30 09:41:10,802 DEBUG Processing jobs
2022-11-30 09:41:10,805 DEBUG Processing stages
2022-11-30 09:41:10,809 DEBUG Processing executors
2022-11-30 09:41:10,809 DEBUG {'id': 'driver', 'hostPort': 'Not Shown:46425', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 0, 'maxTasks': 0, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 64516364697, 'addTime': '2022-11-30T09:29:50.970GMT', 'executorLogs': {}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 27541477785, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'peakMemoryMetrics': {'JVMHeapMemory': 4951995680, 'JVMOffHeapMemory': 225386016, 'OnHeapExecutionMemory': 0, 'OffHeapExecutionMemory': 0, 'OnHeapStorageMemory': 0, 'OffHeapStorageMemory': 0, 'OnHeapUnifiedMemory': 0, 'OffHeapUnifiedMemory': 0, 'DirectPoolMemory': 1190721, 'MappedPoolMemory': 0, 'ProcessTreeJVMVMemory': 0, 'ProcessTreeJVMRSSMemory': 0, 'ProcessTreePythonVMemory': 0, 'ProcessTreePythonRSSMemory': 0, 'ProcessTreeOtherVMemory': 0, 'ProcessTreeOtherRSSMemory': 0, 'MinorGCCount': 5, 'MinorGCTime': 117, 'MajorGCCount': 5, 'MajorGCTime': 484}, 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,809 DEBUG {'id': '7', 'hostPort': 'Not Shown:45371', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:58.298GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=7&logType=stdout', 'stderr': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=7&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 DEBUG {'id': '6', 'hostPort': '10.139.64.7:37625', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:57.694GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=6&logType=stdout', 'stderr': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=6&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 DEBUG {'id': '5', 'hostPort': 'Not Shown:39185', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:56.804GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=5&logType=stdout', 'stderr': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=5&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 DEBUG {'id': '4', 'hostPort': 'Not Shown1:39209', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:56.236GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=4&logType=stdout', 'stderr': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=4&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 DEBUG {'id': '3', 'hostPort': 'Not Shown9:32987', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:56.144GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=3&logType=stdout', 'stderr': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=3&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 DEBUG {'id': '2', 'hostPort': 'Not Shown:44877', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:56.094GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=2&logType=stdout', 'stderr': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=2&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 DEBUG {'id': '1', 'hostPort': 'Not Shown:38769', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:55.989GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=1&logType=stdout', 'stderr': 'http://Nolt Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=1&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 DEBUG {'id': '0', 'hostPort': 'Not Shown:40909', 'isActive': True, 'rddBlocks': 0, 'memoryUsed': 0, 'diskUsed': 0, 'totalCores': 8, 'maxTasks': 8, 'activeTasks': 0, 'failedTasks': 0, 'completedTasks': 0, 'totalTasks': 0, 'totalDuration': 0, 'totalGCTime': 0, 'totalInputBytes': 0, 'totalShuffleRead': 0, 'totalShuffleWrite': 0, 'isBlacklisted': False, 'maxMemory': 43359456460, 'addTime': '2022-11-30T09:29:55.853GMT', 'executorLogs': {'stdout': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=0&logType=stdout', 'stderr': 'http://Not Shown:40000/logPage/?appId=app-20221130092950-0000&executorId=0&logType=stderr'}, 'memoryMetrics': {'usedOnHeapStorageMemory': 0, 'usedOffHeapStorageMemory': 0, 'totalOnHeapStorageMemory': 6384569548, 'totalOffHeapStorageMemory': 36974886912}, 'blacklistedInStages': [], 'attributes': {}, 'resources': {}, 'resourceProfileId': 0, 'isExcluded': False, 'excludedInStages': []}
2022-11-30 09:41:10,810 INFO Debugging API endpoint https://insights-collector.eu01.nr-data.net/accounts//events
2022-11-30 09:41:10,810 INFO Debugging API endpoint {'Api-Key': '', 'Content-Encoding': 'gzip'}
2022-11-30 09:41:12,264 ERROR newrelic events collector responded with status code 404
NOTE: # ( Please provide specifics of the local error logs, Browser Dev Tools console, etc. if appropriate and possible. )

Your Environment

  • ex: Browser name and version:
  • ex: Operating System and version:

Additional context

Please test & make sure your documentation is clear in depicting steps which will help us to use it effectively, rather than giving minimal information insights.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.