Skip to content

Commit

Permalink
chore: add language identifiers, fix typo
Browse files Browse the repository at this point in the history
Java in other docs tends to use 2 space indentation. 

This doc used both `<NEW_RELIC_LICENSE_KEY>` and `NEW_RELIC_LICENSE_KEY` style for the placeholders , so I removed the `<>`to make the doc consistent
  • Loading branch information
brnhensley committed May 21, 2024
1 parent d8168c9 commit 0eb0cac
Showing 1 changed file with 69 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ These are generalized steps to set up Micrometer metrics forwarding. You may wan

Add OpenTelemetry Micrometer instrumentation to the alpha modules section of your `build.gradle` file:

```java
```groovy
//Alpha modules
implementation 'io.opentelemetry.instrumentation:opentelemetry-micrometer-1.5'
```
Expand All @@ -51,37 +51,36 @@ Add OpenTelemetry Micrometer instrumentation to the alpha modules section of you

In the `dependencies` section, add the OpenTelemetry SDK and OTLP exporter:

```java
```groovy
dependencies {
implementation 'io.opentelemetry:opentelemetry-sdk'
implementation 'io.opentelemetry:opentelemetry-exporters-otlp'
implementation 'io.opentelemetry:opentelemetry-sdk'
implementation 'io.opentelemetry:opentelemetry-exporters-otlp'
}
```


An example file with alpha modules and dependencies added might look something like this:

```java
plugins {
id 'java-library'
id 'org.springframework.boot'
}

bootRun {
mainClass.set 'io.opentelemetry.example.micrometer.Application'
}

dependencies {
implementation platform("io.opentelemetry:opentelemetry-bom-alpha:<JAVA_OTEL_VERSION>")
implementation 'io.opentelemetry:opentelemetry-sdk'
implementation 'io.opentelemetry:opentelemetry-exporters-otlp'

implementation platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:<OTEL_JAVA_)INSTRUMENTATION_VERSION>")
implementation 'io.opentelemetry.instrumentation:opentelemetry-micrometer-1.5'
}
```

Keep in mind you will need to update the snippet with correct versioning.
An example file with alpha modules and dependencies added might look something like this:

```groovy
plugins {
id 'java-library'
id 'org.springframework.boot'
}

bootRun {
mainClass.set 'io.opentelemetry.example.micrometer.Application'
}

dependencies {
implementation platform("io.opentelemetry:opentelemetry-bom-alpha:JAVA_OTEL_VERSION")
implementation 'io.opentelemetry:opentelemetry-sdk'
implementation 'io.opentelemetry:opentelemetry-exporters-otlp'

implementation platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:OTEL_JAVA_INSTRUMENTATION_VERSION")
implementation 'io.opentelemetry.instrumentation:opentelemetry-micrometer-1.5'
}
```

Keep in mind you will need to update the snippet with correct versioning.

</Step>
<Step>
Expand All @@ -94,50 +93,52 @@ This snippet updates your code so OpenTelemetry can detect Micrometer data, then

```java
public OpenTelemetry openTelemetry() {
return OpenTelemetrySdk.builder()
.setMeterProvider(
SdkMeterProvider.builder()
.setResource(
Resource.getDefault().toBuilder()
.put("service.name", "micrometer-shim")
// Include instrumentation.provider=micrometer to enable micrometer metrics
// experience in New Relic
.put("instrumentation.provider", "micrometer")
.build())
.registerMetricReader(
PeriodicMetricReader.builder(
OtlpHttpMetricExporter.builder()
.setEndpoint("https://otlp.nr-data.net")
.addHeader(
"api-key",
Optional.ofNullable(System.getenv("NEW_RELIC_LICENSE_KEY"))
.filter(str -> !str.isEmpty() && !str.isBlank())
.orElseThrow())
// IMPORTANT: New Relic exports data using delta temporality
// rather than cumulative temporality
.setAggregationTemporalitySelector(
AggregationTemporalitySelector.deltaPreferred())
// Use exponential histogram aggregation for histogram instruments
// to
// produce better data and compression
.setDefaultAggregationSelector(
DefaultAggregationSelector.getDefault()
.with(
InstrumentType.HISTOGRAM,
Aggregation.base2ExponentialBucketHistogram()))
.build())
// Match default micrometer collection interval of 60 seconds
.setInterval(Duration.ofSeconds(60))
.build())
.build())
.build();
}
return OpenTelemetrySdk.builder()
.setMeterProvider(
SdkMeterProvider.builder()
.setResource(
Resource.getDefault()
.toBuilder()
.put("service.name", "micrometer-shim")
// Include instrumentation.provider=micrometer to enable
// micrometer metrics experience in New Relic
.put("instrumentation.provider", "micrometer")
.build())
.registerMetricReader(
PeriodicMetricReader.builder(
OtlpHttpMetricExporter.builder()
.setEndpoint("https://otlp.nr-data.net")
.addHeader("api-key",
Optional
.ofNullable(System.getenv("NEW_RELIC_LICENSE_KEY"))
.filter(str -> !str.isEmpty() && !str.isBlank())
.orElseThrow())
// IMPORTANT: New Relic exports data using delta
// temporality rather than cumulative temporality
.setAggregationTemporalitySelector(
AggregationTemporalitySelector
.deltaPreferred())
// Use exponential histogram aggregation for
// histogram instruments to produce better data
// and compression
.setDefaultAggregationSelector(
DefaultAggregationSelector.getDefault().with(
InstrumentType.HISTOGRAM,
Aggregation.base2ExponentialBucketHistogram()))
.build())
// Match default micrometer collection interval of 60
// seconds
.setInterval(Duration.ofSeconds(60))
.build())
.build())
.build();
}
```


</Step>

<Step>
<Step>

### Find your data in New Relic

Expand All @@ -153,4 +154,4 @@ To learn more about using New Relic with Micrometer data, we recommend these doc

* Learn to create [custom visualizations with dashboards](/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards)
* [Set up some alerts](/docs/tutorial-create-alerts/create-an-alert) to keep track of system performance
* [Query your data with NRQL](/docs/nrql/get-started/introduction-nrql-how-nrql-works)
* [Query your data with NRQL](/docs/nrql/get-started/introduction-nrql-how-nrql-works)

0 comments on commit 0eb0cac

Please sign in to comment.