ballerinax/newrelic Ballerina library

0.7.2

Package Overview

The New Relic Observability Extension is one of the observability extensions in the Ballerina language.

It provides an implementation for tracing and metrics and, publishing both metrics and traces to a New Relic platform.

Enabling New Relic Extension

To package the New Relic extension into the Jar, follow the following steps.

  1. Add the following import to your program.
Copy
import ballerinax/newrelic as _;
  1. Add the following to the Ballerina.toml when building your program.
Copy
[package]
org = "my_org"
name = "my_package"
version = "1.0.0"

[build-options]
observabilityIncluded=true

To enable the extension and publish traces and metrics to New Relic, add the following to the Config.toml when running your program.

Copy
[ballerina.observe]
tracingEnabled=true
tracingProvider="newrelic"
metricsEnabled=true
metricsReporter="newrelic"

[ballerinax.newrelic]
apiKey="<NEW_RELIC_LICENSE_KEY>"    # Mandatory Configuration.
tracingSamplerType="const"          # Optional Configuration. Default value is 'const'
tracingSamplerParam=1               # Optional Configuration. Default value is 1
tracingReporterFlushInterval=15000  # Optional Configuration. Default value is 15000 milliseconds
tracingReporterBufferSize=10000     # Optional Configuration. Default value is 10000
metricReporterFlushInterval=15000   # Optional Configuration. Default value is 15000 milliseconds
metricReporterClientTimeout=10000   # Optional Configuration. Default value is 10000 milliseconds

User can configure the environment variable BALLERINA_NEWRELIC_API_KEY instead of apiKey in Config.toml. If both are configured, apiKey in Config.toml will be overwritten by the environment variable value.

Observe Metrics in New Relic

Instead of using prometheus as an intermediate metric reporter that remote writes the metrics to New Relic, Ballerina New Relic Observability Extension directly publishes metrics to New Relic on the following metric API https://metric-api.newrelic.com/metric/v1.

Instrumentation of metrics is done using the com.newrelic.telemetry.

Available Metrics

The exporter provides the following metrics.

Metric NameDescription
response_time_seconds_valueResponse time of a HTTP request in seconds
response_time_seconds_maxMaximum response time of a HTTP request
response_time_seconds_minMinimum response time of a HTTP request
response_time_seconds_meanAverage response time of a HTTP request
response_time_seconds_stdDevStandard deviation of response time of a HTTP request
response_time_secondsSummary of HTTP request-response times across various time frames and quantiles
response_time_nanoseconds_total_valueResponse time of a HTTP request in nano seconds
requests_total_valueTotal number of requests
response_errors_total_valueTotal number of response errors
inprogress_requests_valueTotal number of inprogress requests
kafka_publishers_valueNumber of publishers in kafka
kafka_consumers_valueNumber of consumers in kafka
kafka_errors_valueNumber of errors happened while publishing in kafka

Observe Traces in New Relic

Ballerina New Relic Observability Extension directly publishes traces to New Relic on the following trace API https://otlp.nr-data.net:4317. Traces are published to New Relic on OpenTelemetry format.

Instrumentation of traces is done using the io.opentelemetry and GRPC protocol is used send traces.

Import

import ballerinax/newrelic;Copy

Metadata

Released date: 4 months ago

Version: 0.7.2


Compatibility

Platform: java17

Ballerina version: 2201.8.4

GraalVM compatible: Yes


Pull count

Total: 7

Current verison: 1


Weekly downloads


Other versions