이 문서에는 구성을 위해 Java 에이전트가 읽는 newrelic.yml
파일의 템플릿 버전이 포함되어 있습니다. 구성 파일 형식은 YAML입니다. 파일을 편집하는 데 YAML에 대한 지식이 필요하지는 않지만 적절한 들여쓰기를 유지하도록 주의하십시오. Wikipedia 에서 YAML에 대해 자세히 알아보세요.
newrelic.yml
파일을 변경할 때 YAML 유효성 검사기를 사용하여 구문이 정확한지 확인하고 다음 규칙을 따르세요.
- YML 파일은 대소문자를 구분합니다.
- 모든 들여쓰기는 두 문자씩 증가합니다. 파일의 동일한 섹션에 있는 데이터는 동일한 수준의 들여쓰기를 사용해야 합니다. 하위 섹션을 추가로 2칸 들여씁니다.
구조, 디렉터리 및 설정에 대한 자세한 내용은 Java 에이전트 구성 을 참조하십시오.
# This file configures the New Relic agent. New Relic monitors# Java applications with deep visibility and low overhead. For more details and additional# configuration options visit https://docs.newrelic.com/docs/agents/java-agent/configuration/java-agent-configuration-config-file.## <%= generated_for_user %>## This section is for settings common to all environments.# Do not add anything above this next line.common: &default_settings
# ============================== LICENSE KEY =============================== # You must specify the license key associated with your New Relic # account. For example, if your license key is 12345 use this: # license_key: '12345' # The key binds your agent's data to your account in the New Relic UI. license_key: '<%= license_key %>'
# Agent enabled # Use this setting to disable the agent instead of removing it from the startup command. # Default is true. agent_enabled: true
# Set the name of your application as you'd like it to show up in the New Relic UI. # If enable_auto_app_naming is false, the agent reports all data to this application. # Otherwise, the agent reports only background tasks (transactions for non-web applications) # to this application. To report data to more than one application # (useful for rollup reporting), separate the application names with ";". # For example, to report data to "My Application" and "My Application 2" use this: # app_name: My Application;My Application 2 # This setting is required. Up to 3 different application names can be specified. # The first application name must be unique. app_name: My Application
# To enable high security, set this property to true. When in high # security mode, the agent will use SSL and obfuscated SQL. Additionally, # request parameters and message parameters will not be sent to New Relic. high_security: false
# Set to true to enable support for auto app naming. # The name of each web app is detected automatically # and the agent reports data separately for each one. # This provides a finer-grained performance breakdown for # web apps in New Relic. # Default is false. enable_auto_app_naming: false
# Set to true to enable component-based transaction naming. # Set to false to use the URI of a web request as the name of the transaction. # Default is true. enable_auto_transaction_naming: true
# The agent uses its own log file to keep its logging # separate from that of your application. Specify the log level here. # This setting is dynamic, so changes do not require restarting your application. # The levels in increasing order of verboseness are: # off, severe, warning, info, fine, finer, finest # Default is info. log_level: info
# Log all data sent to and from New Relic in plain text. # This setting is dynamic, so changes do not require restarting your application. # Default is false. audit_mode: false
# The number of backup log files to save. # Default is 1. log_file_count: 1
# The maximum number of kbytes to write to any one log file. # The log_file_count must be set greater than 1. # Default is 0 (no limit). log_limit_in_kbytes: 0
# Override other log rolling configuration and roll the logs daily. # Default is false. log_daily: false
# The name of the log file. # Default is newrelic_agent.log. log_file_name: newrelic_agent.log
# The log file directory. # Default is the logs directory in the newrelic.jar parent directory. #log_file_path:
# Provides the ability to forward application logs to New Relic, generate log usage metrics, # and decorate local application log files with agent metadata for use with third party log forwarders. # The application_logging.forwarding and application_logging.local_decorating should not be used together. application_logging:
# Provides control over all the application logging features for forwarding, local log # decorating, and metrics features. Set as false to disable all application logging features. # Default is true. enabled: true
# The agent will automatically forward application logs to New Relic in # a format that includes agent metadata for linking them to traces and errors. forwarding:
# When true, application logs will be forwarded to New Relic. The default is true. enabled: true
# Application log events are collected up to the configured amount. Afterwards, # events are sampled to maintain an even distribution across the harvest cycle. # Default is 10000. Setting to 0 will disable. #max_samples_stored: 10000
# Whether the log events should include context from loggers with support for that. context_data:
# When true, application logs will contain context data. enabled: false
# A comma separated list of attribute keys whose values should be sent to New Relic. #include:
# A comma separated list of attribute keys whose values should not be sent to New Relic. #exclude:
# The agent will generate metrics to indicate the number of # application log events occurring at each distinct log level. metrics:
# When true, application log metrics will be reported. The default is true. enabled: true
# The agent will add linking metadata to each log line in your application log files. # This feature should only be used if you want to use a third party log forwarder, instead # of the agent's built-in forwarding feature, to send your application log events to New Relic. #local_decorating:
# When true, the agent will decorate your application log files with linking metadata. The default is false. #enabled: false
# Adds integration with CodeStream, introducing Code-Level Metrics! Golden Signals visible in your # IDE through New Relic CodeStream. code_level_metrics:
# When true the agent will capture namespace and function information # on spans to enable code level metrics in CodeStream. enabled: true
# Proxy settings for connecting to the New Relic server: # If a proxy is used, the host setting is required. Other settings # are optional. Default port is 8080. The username and password # settings will be used to authenticate to Basic Auth challenges # from a proxy server. Proxy scheme will allow the agent to # connect through proxies using the HTTPS scheme. #proxy_host: hostname #proxy_port: 8080 #proxy_user: username #proxy_password: password #proxy_scheme: https
# Limits the number of lines to capture for each stack trace. # Default is 30 max_stack_trace_lines: 30
# Provides the ability to configure the attributes sent to New Relic. These # attributes can be found in transaction traces, traced errors, # transaction events, and page views. attributes:
# When true, attributes will be sent to New Relic. The default is true. enabled: true
#A comma separated list of attribute keys whose values should # be sent to New Relic. #include:
# A comma separated list of attribute keys whose values should # not be sent to New Relic. #exclude:
# Defines which sets of http attributes the agent will send: standard, legacy or both (default). # Having the agent send both sets will increase ingestion. # Having the agent send only legacy may impact current or future functionality. http_attribute_mode: both
# Transaction tracer captures deep information about slow # transactions and sends this to the New Relic service once a # minute. Included in the transaction is the exact call sequence of # the transactions including any SQL statements issued. transaction_tracer:
# Transaction tracer is enabled by default. Set this to false to turn it off. # This feature is not available to Lite accounts and is automatically disabled. # Default is true. enabled: true
# Threshold in seconds for when to collect a transaction # trace. When the response time of a controller action exceeds # this threshold, a transaction trace will be recorded and sent to # New Relic. Valid values are any float value, or (default) "apdex_f", # which will use the threshold for the "Frustrated" Apdex level # (greater than four times the apdex_t value). # Default is apdex_f. transaction_threshold: apdex_f
# When transaction tracer is on, SQL statements can optionally be # recorded. The recorder has three modes, "off" which sends no # SQL, "raw" which sends the SQL statement in its original form, # and "obfuscated", which strips out numeric and string literals. # Default is obfuscated. record_sql: obfuscated
# Set this to true to log SQL statements instead of recording them. # SQL is logged using the record_sql mode. # Default is false. log_sql: false
# Threshold in seconds for when to collect stack trace for a SQL # call. In other words, when SQL statements exceed this threshold, # then capture and send to New Relic the current stack trace. This is # helpful for pinpointing where long SQL calls originate from. # Default is 0.5 seconds. stack_trace_threshold: 0.5
# Determines whether the agent will capture query plans for slow # SQL queries. Only supported for MySQL and PostgreSQL. # Default is true. explain_enabled: true
# Threshold for query execution time below which query plans will # not be captured. Relevant only when `explain_enabled` is true. # Default is 0.5 seconds. explain_threshold: 0.5
# Use this setting to control the variety of transaction traces. # The higher the setting, the greater the variety. # Set this to 0 to always report the slowest transaction trace. # Default is 20. top_n: 20
# Error collector captures information about uncaught exceptions and # sends them to New Relic for viewing. error_collector:
# This property enables the collection of errors. If the property is not # set or the property is set to false, then errors will not be collected. # Default is true. enabled: true
# Use this property to exclude specific exceptions from being reported as errors # by providing a comma separated list of full class names. # The default is to exclude akka.actor.ActorKilledException. If you want to override # this, you must provide any new value as an empty list is ignored. ignore_classes: - "akka.actor.ActorKilledException"
# Use this property to exclude specific http status codes from being reported as errors # by providing a comma separated list of status codes. # The default is to exclude 404s. If you want to override # this, you must provide any new value because an empty list is ignored. ignore_status_codes: 404
# Transaction events are used for histograms and percentiles. Non-aggregated data is collected # for each web transaction and sent to the server on harvest. transaction_events:
# Set to false to disable transaction events. # Default is true. enabled: true
# Events are collected up to the configured amount. Afterwards, events are sampled to # maintain an even distribution across the harvest cycle. # Default is 2000. Setting to 0 will disable. max_samples_stored: 2000
# Distributed tracing lets you see the path that a request takes through your distributed system. # This replaces the legacy Cross Application Tracing feature. distributed_tracing:
# Set to false to disable distributed tracing. # Default is true. enabled: true
# Agent versions 5.10.0+ utilize both the newrelic header and W3C Trace Context headers for distributed tracing. # The newrelic distributed tracing header allows interoperability with older agents that don't support W3C Trace Context headers. # Agent versions that support W3C Trace Context headers will prioritize them over newrelic headers for distributed tracing. # If you do not want to utilize the newrelic header, setting this to true will result in the agent excluding the newrelic header # and only using W3C Trace Context headers for distributed tracing. # Default is false. exclude_newrelic_header: false
# New Relic's distributed tracing UI uses Span events to display traces across different services. # Span events capture attributes that describe execution context and provide linking metadata. # Span events require distributed tracing to be enabled. span_events:
# Set to false to disable Span events. # Default is true. enabled: true
# Determines the number of Span events that can be captured during an agent harvest cycle. # Increasing the number of Span events can lead to additional agent overhead. A maximum value may be imposed server side by New Relic. # Default is 2000 max_samples_stored: 2000
# Provides the ability to filter the attributes attached to Span events. # Custom attributes can be added to Span events using the NewRelic.getAgent().getTracedMethod().addCustomAttribute(...) API. attributes:
# When true, attributes will be sent to New Relic. The default is true. enabled: true
# A comma separated list of attribute keys whose values should be sent to New Relic. #include:
# A comma separated list of attribute keys whose values should not be sent to New Relic. #exclude:
# Thread profiler measures wall clock time, CPU time, and method call counts # in your application's threads as they run. # This feature is not available to Lite accounts and is automatically disabled. thread_profiler:
# Set to false to disable the thread profiler. # Default is true. enabled: true
# New Relic Real User Monitoring (RUM) gives you insight into the performance real users are # experiencing with your website. This is accomplished by measuring the time it takes for # your users' browsers to download and render your web pages by injecting a small amount # of JavaScript code into the header and footer of each page. browser_monitoring:
# By default the agent automatically inserts API calls in compiled JSPs to # inject the monitoring JavaScript into web pages. Not all rendering engines are supported. # See https://docs.newrelic.com/docs/agents/java-agent/instrumentation/new-relic-browser-java-agent#manual_instrumentation # for instructions to add these manually to your pages. # Set this attribute to false to turn off this behavior. auto_instrument: true
# Class transformer can be used to disable all agent instrumentation or specific instrumentation modules. # All instrumentation modules can be found here: https://github.com/newrelic/newrelic-java-agent/tree/main/instrumentation class_transformer:
# This instrumentation reports the name of the user principal returned from # HttpServletRequest.getUserPrincipal() when servlets and filters are invoked. com.newrelic.instrumentation.servlet-user: enabled: false
com.newrelic.instrumentation.spring-aop-2: enabled: false
# This instrumentation reports metrics for resultset operations. com.newrelic.instrumentation.jdbc-resultset: enabled: false
# Classes loaded by classloaders in this list will not be instrumented. # This is a useful optimization for runtimes which use classloaders to # load dynamic classes which the agent would not instrument. classloader_excludes: groovy.lang.GroovyClassLoader$InnerLoader, org.codehaus.groovy.runtime.callsite.CallSiteClassLoader, com.collaxa.cube.engine.deployment.BPELClassLoader, org.springframework.data.convert.ClassGeneratingEntityInstantiator$ObjectInstantiatorClassGenerator, org.mvel2.optimizers.impl.asm.ASMAccessorOptimizer$ContextClassLoader, gw.internal.gosu.compiler.SingleServingGosuClassLoader,
# Enhanced Spring transaction naming. # This feature will name any transaction that originates from a Spring controller after # the defined route and HTTP method. For example: "/customer/v1/edit (POST)". # This includes controllers that implement or extend interfaces/classes with WebMVC related # annotations (@RestController, @Controller, @RequestMapping, etc). By default, this is configured # to false, which will name transactions for those types of controllers based on the controller # class name and method. For example; "CustomerController/edit". This is the naming logic carried # over from previous agent versions. "Standard" controllers, with all relevant annotations # present on the actual class, will still get named based on route and HTTP method. enhanced_spring_transaction_naming: false
# Actuator endpoint transaction naming # By default, built-in actuator endpoints and custom actuator endpoints (using the @Endpoint annotation # and its subclasses) will all be named as "OperationHandler/handle" in New Relic. Setting this # to true will result in the transaction name reflecting the actual base actuator endpoint URI. # For example, invoking "/actuator/loggers" or "actuator/loggers/com.newrelic" will result in the # transaction name "actuator/loggers (GET)". This is to prevent MGI. # Default is false. name_actuator_endpoints: false
# Real-time profiling using Java Flight Recorder (JFR). # This feature reports dimensional metrics to the ingest endpoint configured by # metric_ingest_uri and events to the ingest endpoint configured by event_ingest_uri. # Both ingest endpoints default to US production but they will be automatically set to EU # production when using an EU license key. Other ingest endpoints can be configured manually. # Requires a JVM that provides the JFR library. jfr:
# Set to true to enable Real-time profiling with JFR. # Default is false. enabled: false
# Set to true to enable audit logging which will display all JFR metrics and events in each harvest batch. # Audit logging is extremely verbose and should only be used for troubleshooting purposes. # Default is false. audit_logging: false
# User-configurable custom labels for this agent. Labels are name-value pairs. # There is a maximum of 64 labels per agent. Names and values are limited to 255 characters. # Names and values may not contain colons (:) or semicolons (;). labels:
# An example label #label_name: label_value
# New Relic Security vulnerability detection. security: # Determines whether the security data is sent to New Relic or not. When this is disabled and agent.enabled is # true, the security module will run but data will not be sent. Default is false. enabled: false
# New Relic Security provides two modes: IAST and RASP # Default is IAST. Due to the invasive nature of IAST scanning, DO NOT enable this mode in either a # production environment or an environment where production data is processed. mode: IAST
# New Relic Security’s SaaS connection URL validator_service_url: wss://csec.nr-data.net
# To completely disable all security functionality, set this flag to false. This property is # read only once at application start. Default is false. agent: enabled: false
# These are the category of security events that can be detected. Set to false to disable detection of # individual event types. Default is true for each event type. detection: rci: enabled: true rxss: enabled: true deserialization: enabled: true
# Slow transaction detection will report an event to New Relic ("SlowTransaction") whenever a Transaction's # time exceeds the threshold value (in ms). A transaction will only be reported once and by default, only # transactions that are in-process during a harvest cycle will be checked. Only the slowest single transaction # will be reported even if multiple transactions exceed the threshold. slow_transactions: enabled: true threshold: 600000
# If this is set to true, every transaction will be checked for exceeding the defined threshold on # transaction completion. Note that this can be computationally expensive since a stack trace is sent # with every SlowTransaction event, if a large number of transaction exceed the threshold. evaluate_completed_transactions: false
# Application Environments# ------------------------------------------# Environment specific settings are in this section.# You can use the environment to override the default settings.# For example, to change the app_name setting.# Use -Dnewrelic.environment=<environment> on the Java startup command line# to set the environment.# The default environment is production.
# NOTE if your application has other named environments, you should# provide configuration settings for these environments here.
development: <<: *default_settings app_name: My Application (Development)
test: <<: *default_settings app_name: My Application (Test)
production: <<: *default_settings
staging: <<: *default_settings app_name: My Application (Staging)