New Relic it’s a powerful tool that handles application monitoring.
It is a good practice setting environment variables to define and configure our NewRelic parameters.
[newrelic] # You must specify the license key associated with your New # Relic account. This key binds the Python Agent's data to your # account in the New Relic service. license_key = YOUR_LICENSE_KEY # The application name. Set this to be the name of your # application as you would like it to show up in New Relic UI. # The UI will then auto-map instances of your application into a # entry on your home dashboard page. app_name = YOU_APP_NAME # When "true", the agent collects performance data about your # application and reports this data to the New Relic UI at # newrelic.com. This global switch is normally overridden for # each environment below. monitor_mode = false developer_mode = true # Sets the name of a file to log agent messages to. Useful for # debugging any issues with the agent. This is not set by # default as it is not known in advance what user your web # application processes will run as and where they have # permission to write to. Whatever you set this to you must # ensure that the permissions for the containing directory and # the file itself are correct, and that the user that your web # application runs as can write to the file. If not able to # write out a log file, it is also possible to say "stderr" and # output to standard error output. This would normally result in # output appearing in your web server log. log_file = stderr # Sets the level of detail of messages sent to the log file, if # a log file location has been provided. Possible values, in # increasing order of detail, are: "critical", "error", "warning", # "info" and "debug". When reporting any agent issues to New # Relic technical support, the most useful setting for the # support engineers is "debug". However, this can generate a lot # of information very quickly, so it is best not to keep the # agent at this level for longer than it takes to reproduce the # problem you are experiencing. log_level = info # The Python Agent communicates with the New Relic service using # SSL by default. Note that this does result in an increase in # CPU overhead, over and above what would occur for a non SSL # connection, to perform the encryption involved in the SSL # communication. This work is though done in a distinct thread # to those handling your web requests, so it should not impact # response times. You can if you wish revert to using a non SSL # connection, but this will result in information being sent # over a plain socket connection and will not be as secure. ssl = true # High Security Mode enforces certain security settings, and # prevents them from being overridden, so that no sensitive data # is sent to New Relic. Enabling High Security Mode means that # SSL is turned on, request parameters are not collected, and SQL # can not be sent to New Relic in its raw form. To activate High # Security Mode, it must be set to 'true' in this local .ini # configuration file AND be set to 'true' in the server-side # configuration in the New Relic user interface. For details, see # https://docs.newrelic.com/docs/subscriptions/high-security high_security = false # The Python Agent will attempt to connect directly to the New # Relic service. If there is an intermediate firewall between # your host and the New Relic service that requires you to use a # HTTP proxy, then you should set both the "proxy_host" and # "proxy_port" settings to the required values for the HTTP # proxy. The "proxy_user" and "proxy_pass" settings should # additionally be set if proxy authentication is implemented by # the HTTP proxy. The "proxy_scheme" setting dictates what # protocol scheme is used in talking to the HTTP proxy. This # would normally always be set as "http" which will result in the # agent then using a SSL tunnel through the HTTP proxy for end to # end encryption. # proxy_scheme = http # proxy_host = hostname # proxy_port = 8080 # proxy_user = # proxy_pass = # Capturing request parameters is off by default. To enable the # capturing of request parameters, first ensure that the setting # "attributes.enabled" is set to "true" (the default value), and # then add "request.parameters.*" to the "attributes.include" # setting. For details about attributes configuration, please # consult the documentation. attributes.include = request.parameters.* # --------------------------------------------------------------------------- # # The application environments. These are specific settings which # override the common environment settings. The settings related to a # specific environment will be used when the environment argument to the # newrelic.agent.initialize() function has been defined to be either # "development", "pytest", "preprod" or "production". # [newrelic:staging] app_name = YOU_APP_NAME (Staging) monitor_mode = true developer_mode = false [newrelic:production] monitor_mode = true developer_mode = false # ---------------------------------------------------------------------------
As you can see I have all the common settings under the
[newrelic] tag and by default I set
monitor_mode = false and
developer_mode = true.
2 environments have been declared on that file,
staging, so if I wanna use
production I just need to declare
NEW_RELIC_ENVIRONMENT and I’m good to go.
NEW_RELIC_ENVIRONMENT=production NEW_RELIC_CONFIG_FILE=conf/newrelic.ini export NEW_RELIC_ENVIRONMENT export NEW_RELIC_CONFIG_FILE
Finally run New Relic as documented on their manuals.
# Example: Python agent newrelic-admin run-program YOUR_COMMAND_OPTIONS