Class NewRelic
- java.lang.Object
-
- com.newrelic.api.agent.NewRelic
-
public final class NewRelic extends java.lang.Object
The New Relic API. Consumers of this API should add the newrelic-api.jar to their classpath. The static methods of this class form the Agent's basic Java API. UsegetAgent()
to obtain the root of a hierarchy of objects offering additional capabilities.
-
-
Constructor Summary
Constructors Constructor Description NewRelic()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addCustomParameter(java.lang.String key, boolean value)
Add a key/value pair to the current transaction.static void
addCustomParameter(java.lang.String key, java.lang.Number value)
Add a key/value pair to the current transaction.static void
addCustomParameter(java.lang.String key, java.lang.String value)
Add a key/value pair to the current transaction.static void
addCustomParameters(java.util.Map<java.lang.String,java.lang.Object> params)
Add key/value pairs to the current transaction.static Agent
getAgent()
Returns the root of the New Relic Java Agent API object hierarchy.static java.lang.String
getBrowserTimingFooter()
Get the RUM JavaScript footer for the current web transaction.static java.lang.String
getBrowserTimingFooter(java.lang.String nonce)
Get the RUM JavaScript footer for the current web transaction.static java.lang.String
getBrowserTimingHeader()
Get the RUM JavaScript header for the current web transaction.static java.lang.String
getBrowserTimingHeader(java.lang.String nonce)
Get the RUM JavaScript header for the current web transaction.static void
ignoreApdex()
Ignore the current transaction for calculating Apdex score.static void
ignoreTransaction()
Ignore the current transaction.static void
incrementCounter(java.lang.String name)
Increment the metric counter for the given name.static void
incrementCounter(java.lang.String name, int count)
Increment the metric counter for the given name.static void
noticeError(java.lang.String message)
Notice an error and report it to New Relic.static void
noticeError(java.lang.String message, boolean expected)
Notice an error and report it to New Relic.static void
noticeError(java.lang.String message, java.util.Map<java.lang.String,?> params)
Notice an error and report it to New Relic.static void
noticeError(java.lang.String message, java.util.Map<java.lang.String,?> params, boolean expected)
Notice an error and report it to New Relic.static void
noticeError(java.lang.Throwable throwable)
Report an exception to New Relic.static void
noticeError(java.lang.Throwable throwable, boolean expected)
Report an exception to New Relic.static void
noticeError(java.lang.Throwable throwable, java.util.Map<java.lang.String,?> params)
Notice an exception and report it to New Relic.static void
noticeError(java.lang.Throwable throwable, java.util.Map<java.lang.String,?> params, boolean expected)
Notice an exception and report it to New Relic.static void
recordMetric(java.lang.String name, float value)
Record a metric value for the given name.static void
recordResponseTimeMetric(java.lang.String name, long millis)
Record a response time in milliseconds for the given metric name.static void
setAccountName(java.lang.String name)
Set the account name to associate with the RUM JavaScript footer for the current web transaction.static void
setAppServerPort(int port)
Set the app server port which is reported to RPM.static void
setErrorGroupCallback(ErrorGroupCallback errorGroupCallback)
Registers anErrorGroupCallback
that's used to generate a grouping key for the supplied error.static void
setInstanceName(java.lang.String instanceName)
Set the instance name in the environment.static void
setProductName(java.lang.String name)
Set the product name to associate with the RUM JavaScript footer for the current web transaction.static void
setRequestAndResponse(Request request, Response response)
Sets the request and response instances for the current transaction.static void
setServerInfo(java.lang.String dispatcherName, java.lang.String version)
Set the dispatcher name and version which is reported to RPM.static void
setTransactionName(java.lang.String category, java.lang.String name)
Set the name of the current transaction.static void
setUserId(java.lang.String userId)
Sets the user ID for the current transaction by adding the "enduser.id" agent attribute.static void
setUserName(java.lang.String name)
Set the user name to associate with the RUM JavaScript footer for the current web transaction.
-
-
-
Method Detail
-
getAgent
public static Agent getAgent()
Returns the root of the New Relic Java Agent API object hierarchy.- Returns:
- the root of the New Relic Java Agent API object hierarchy
- Since:
- 3.9.0
-
recordMetric
public static void recordMetric(java.lang.String name, float value)
Record a metric value for the given name.- Parameters:
name
- The name of the metric. The metric is not recorded if the name is null or the empty string.value
- The value of the metric.- Since:
- 1.3.0
-
recordResponseTimeMetric
public static void recordResponseTimeMetric(java.lang.String name, long millis)
Record a response time in milliseconds for the given metric name.- Parameters:
name
- The name of the metric. The response time is not recorded if the name is null or the empty string.millis
- The response time in milliseconds.- Since:
- 1.3.0
-
incrementCounter
public static void incrementCounter(java.lang.String name)
Increment the metric counter for the given name.- Parameters:
name
- The name of the metric to increment.- Since:
- 1.3.0
-
incrementCounter
public static void incrementCounter(java.lang.String name, int count)
Increment the metric counter for the given name.- Parameters:
name
- The name of the metric to increment.count
- The amount in which the metric should be incremented.- Since:
- 2.21.0
-
noticeError
public static void noticeError(java.lang.Throwable throwable, java.util.Map<java.lang.String,?> params)
Notice an exception and report it to New Relic. If this method is called within a transaction, the exception will be reported with the transaction when it finishes. If it is invoked outside of a transaction, a traced error will be created and reported to New Relic. If noticeError is invoked multiple times while in a transaction, only the last error will be reported.Note: The key and value pairs in custom parameters
params
will be dropped or modified in the traced error if the key or value, each, cannot be encoded in 255 bytes. If key or value is over this limit, the behavior will be the same as defined inaddCustomParameter
.- Parameters:
throwable
- The throwable to notice and report.params
- Custom parameters to include in the traced error. May be null.- Since:
- 1.3.0
-
noticeError
public static void noticeError(java.lang.Throwable throwable)
Report an exception to New Relic.- Parameters:
throwable
- The throwable to report.- Since:
- 1.3.0
- See Also:
noticeError(Throwable, Map)
-
noticeError
public static void noticeError(java.lang.String message, java.util.Map<java.lang.String,?> params)
Notice an error and report it to New Relic. If this method is called within a transaction, the error message will be reported with the transaction when it finishes. If it is invoked outside of a transaction, a traced error will be created and reported to New Relic. If noticeError is invoked multiple times while in a transaction, only the last error will be reported.Note: The key and value pairs in custom parameters
params
will be dropped or modified in the traced error if the key or value, each, cannot be encoded in 255 bytes. If key or value is over this limit, the behavior will be the same as defined inaddCustomParameter
.- Parameters:
message
- The error message to be reported.params
- Custom parameters to include in the traced error. May be null.- Since:
- 1.3.0
-
noticeError
public static void noticeError(java.lang.String message)
Notice an error and report it to New Relic. If this method is called within a transaction, the error message will be reported with the transaction when it finishes. If it is invoked outside of a transaction, a traced error will be created and reported to New Relic. If noticeError is invoked multiple times while in a transaction, only the last error will be reported.- Parameters:
message
- Message to report with a transaction when it finishes.- Since:
- 2.21.0
-
noticeError
public static void noticeError(java.lang.Throwable throwable, java.util.Map<java.lang.String,?> params, boolean expected)
Notice an exception and report it to New Relic. If this method is called within a transaction, the exception will be reported with the transaction when it finishes. If it is invoked outside of a transaction, a traced error will be created and reported to New Relic. If noticeError is invoked multiple times while in a transaction, only the last error will be reported. Expected errors do not increment an application's error count or contribute towards its Apdex score.Note: The key and value pairs in custom parameters
params
will be dropped or modified in the traced error if the key or value, each, cannot be encoded in 255 bytes. If key or value is over this limit, the behavior will be the same as defined inaddCustomParameter
.- Parameters:
throwable
- The throwable to notice and report.params
- Custom parameters to include in the traced error. May be null.expected
- true if this error is expected, false otherwise.- Since:
- 3.38.0
-
noticeError
public static void noticeError(java.lang.Throwable throwable, boolean expected)
Report an exception to New Relic. Expected errors do not increment an application's error count or contribute towards its Apdex score.- Parameters:
throwable
- The throwable to report.expected
- true if this error is expected, false otherwise.- Since:
- 3.38.0
- See Also:
noticeError(Throwable, Map)
-
noticeError
public static void noticeError(java.lang.String message, java.util.Map<java.lang.String,?> params, boolean expected)
Notice an error and report it to New Relic. If this method is called within a transaction, the error message will be reported with the transaction when it finishes. If it is invoked outside of a transaction, a traced error will be created and reported to New Relic. If noticeError is invoked multiple times while in a transaction, only the last error will be reported. Expected errors do not increment an application's error count or contribute towards its Apdex score.Note: The key and value pairs in custom parameters
params
will be dropped or modified in the traced error if the key or value, each, cannot be encoded in 255 bytes. If key or value is over this limit, the behavior will be the same as defined inaddCustomParameter
.- Parameters:
message
- The error message to be reported.params
- Custom parameters to include in the traced error. May be null.expected
- true if this error is expected, false otherwise.- Since:
- 3.38.0
-
noticeError
public static void noticeError(java.lang.String message, boolean expected)
Notice an error and report it to New Relic. If this method is called within a transaction, the error message will be reported with the transaction when it finishes. If it is invoked outside of a transaction, a traced error will be created and reported to New Relic. If noticeError is invoked multiple times while in a transaction, only the last error will be reported. Expected errors do not increment an application's error count or contribute towards its Apdex score.- Parameters:
message
- Message to report with a transaction when it finishes.expected
- true if this error is expected, false otherwise.- Since:
- 3.38.0
-
addCustomParameter
public static void addCustomParameter(java.lang.String key, java.lang.Number value)
Add a key/value pair to the current transaction. These are reported in errors, transaction traces, and transaction events. The key and value will only be reported if this call is made within a New Relic transaction.Note: The key and value pair will only be reported if the key argument can be represented in 255 bytes when encoded with UTF-8 encoding.
- Parameters:
key
- Custom parameter key.value
- Custom parameter value.- Since:
- 1.3.0
-
addCustomParameter
public static void addCustomParameter(java.lang.String key, java.lang.String value)
Add a key/value pair to the current transaction. These are reported in errors, transaction traces, and transaction events. The key and value will only be reported if this call is made within a New Relic transaction.Note: The key and value pair will only be reported if the key argument can be represented in 255 bytes when encoded with UTF-8 encoding. The value argument will be truncated, by stripping characters, to fit in 255 bytes, encoded using UTF-8 encoding.
- Parameters:
key
- Custom parameter key.value
- Custom parameter value.- Since:
- 1.3.0
-
addCustomParameter
public static void addCustomParameter(java.lang.String key, boolean value)
Add a key/value pair to the current transaction. These are reported in errors, transaction traces, and transaction events. The key and value will only be reported if this call is made within a New Relic transaction.Note: The key and value pair will only be reported if the key argument can be represented in 255 bytes when encoded with UTF-8 encoding.
- Parameters:
key
- Custom parameter key.value
- Custom parameter value.- Since:
- 6.1.0
-
addCustomParameters
public static void addCustomParameters(java.util.Map<java.lang.String,java.lang.Object> params)
Add key/value pairs to the current transaction. These are reported in errors, transaction traces, and transaction events. The key and value will only be reported if this call is made within a New Relic transaction.Note: The key and value pairs will only be reported if the key argument can be represented in 255 bytes when encoded with UTF-8 encoding. The value argument will be truncated, by stripping characters, to fit in 255 bytes, encoded using UTF-8 encoding.
- Parameters:
params
- Custom parameters to include.- Since:
- 4.12.0
-
setUserId
public static void setUserId(java.lang.String userId)
Sets the user ID for the current transaction by adding the "enduser.id" agent attribute. It is reported in errors and transaction traces. When high security mode is enabled, this method call will do nothing.- Parameters:
userId
- The user ID to report. If it is a null or blank String, the "enduser.id" agent attribute will not be included in the current transaction and any associated errors.- Since:
- 8.1.0
-
setTransactionName
public static void setTransactionName(java.lang.String category, java.lang.String name)
Set the name of the current transaction.- Parameters:
category
- Metric category. If the input is null, then the default will be used.name
- The name of the transaction starting with a forward slash. example: /store/order- Since:
- 1.3.0
-
ignoreTransaction
public static void ignoreTransaction()
Ignore the current transaction.- Since:
- 1.3.0
-
ignoreApdex
public static void ignoreApdex()
Ignore the current transaction for calculating Apdex score.- Since:
- 1.3.0
-
setRequestAndResponse
public static void setRequestAndResponse(Request request, Response response)
Sets the request and response instances for the current transaction. Use this API to generate web transactions for custom web request dispatchers. Only the first call to setRequestAndResponse will take effect.- Parameters:
request
- The current transaction's request.response
- The current transaction's response.- Since:
- 2.21.0
-
getBrowserTimingHeader
public static java.lang.String getBrowserTimingHeader()
Get the RUM JavaScript header for the current web transaction.- Returns:
- RUM JavaScript header for the current web transaction.
- Since:
- 2.21.0
-
getBrowserTimingHeader
public static java.lang.String getBrowserTimingHeader(java.lang.String nonce)
Get the RUM JavaScript header for the current web transaction.- Parameters:
nonce
- a random per-request nonce for sites using Content Security Policy (CSP)- Returns:
- RUM JavaScript header for the current web transaction.
- Since:
- 7.6.0
-
getBrowserTimingFooter
public static java.lang.String getBrowserTimingFooter()
Get the RUM JavaScript footer for the current web transaction.- Returns:
- RUM JavaScript footer for the current web transaction.
- Since:
- 2.21.0
-
getBrowserTimingFooter
public static java.lang.String getBrowserTimingFooter(java.lang.String nonce)
Get the RUM JavaScript footer for the current web transaction.- Parameters:
nonce
- a random per-request nonce for sites using Content Security Policy (CSP)- Returns:
- RUM JavaScript footer for the current web transaction.
- Since:
- 7.6.0
-
setUserName
public static void setUserName(java.lang.String name)
Set the user name to associate with the RUM JavaScript footer for the current web transaction. If high security mode is enabled, this method call does nothing.Note: The user
name
argument has a limit of 255 bytes, encoded with UTF-8 encoding. Aname
that requires more than 255 bytes will be truncated, by stripping characters, to fit in 255 bytes.- Parameters:
name
- User name to associate with the RUM JavaScript footer.- Since:
- 2.21.0
-
setAccountName
public static void setAccountName(java.lang.String name)
Set the account name to associate with the RUM JavaScript footer for the current web transaction.Note: The account
name
argument has a limit of 255 bytes, encoded with UTF-8 encoding. Aname
that requires more than 255 bytes will be truncated, by stripping characters, to fit in 255 bytes.- Parameters:
name
- Account name to associate with the RUM JavaScript footer.- Since:
- 2.21.0
-
setProductName
public static void setProductName(java.lang.String name)
Set the product name to associate with the RUM JavaScript footer for the current web transaction.Note: The product
name
argument has a limit of 255 bytes, encoded with UTF-8 encoding. Aname
that requires more than 255 bytes will be truncated, by stripping characters, to fit in 255 bytes.- Parameters:
name
- Product name to associate with the RUM JavaScript footer.- Since:
- 2.21.0
-
setAppServerPort
public static void setAppServerPort(int port)
Set the app server port which is reported to RPM.- Parameters:
port
- the app server port- Since:
- 3.36.0
-
setServerInfo
public static void setServerInfo(java.lang.String dispatcherName, java.lang.String version)
Set the dispatcher name and version which is reported to RPM.- Parameters:
dispatcherName
- the dispatcher name that is reported to RPMversion
- the version that is reported to RPM- Since:
- 3.36.0
-
setInstanceName
public static void setInstanceName(java.lang.String instanceName)
Set the instance name in the environment. A single host:port may support multiple JVM instances. The instance name is intended to help the customer identify the specific JVM instance.- Parameters:
instanceName
- the instance name to set in the environment- Since:
- 3.36.0
-
setErrorGroupCallback
public static void setErrorGroupCallback(ErrorGroupCallback errorGroupCallback)
Registers anErrorGroupCallback
that's used to generate a grouping key for the supplied error. This key will be used to group similar error messages on the Errors Inbox UI. If the errorGroupCallback instance is null no grouping key will be generated.- Parameters:
errorGroupCallback
- the ErrorGroupCallback used to generate grouping keys for errors- Since:
- 8.10.0
-
-