Skip to main content
Moderne OnlyThis recipe is proprietary to Moderne and runs on the Moderne platform or CLI — it isn’t part of the open-source catalog. Available with a Moderne subscription.Contact Sales

Record New Relic metrics through OpenTelemetry

Recipe IDorg.openrewrite.golang.migration.MigrateNewRelicMetricRecording
Artifactgithub.com/moderneinc/recipes-go

Rewrite harvester.RecordMetric(telemetry.Count{…}) and telemetry.Gauge{…} as an OpenTelemetry Float64Counter.Add / Float64Gauge.Record on a meter from the global provider. The instrument is created at the call site inside a scoping block, which keeps one statement replacing one; hoist it to a package-level instrument when reviewing. Timestamp and Interval are dropped, since OpenTelemetry stamps a measurement when it is collected. A call site is left alone when its attribute values are not all string, bool, int, int64 or float64, when the enclosing function has no context.Context in scope, or when the harvester is a local variable the rewrite would leave unused.

Single recipeOpenRewriteModerne Proprietary License
Try in PlatformTry this recipe in the Moderne platform. Not a user yet? You’ll get a no-setup demo environment, with nothing to install or configure.

Usage​

Run this recipe

In order to run Go recipes, you will need to use the Moderne CLI. For Go specific configuration instructions, please see our configuring Go guide.

Once the CLI is installed, you can run the recipe via:

Run the recipe
mod run . --recipe MigrateNewRelicMetricRecording

If the recipe is not available locally, then you can install it using:

Installing without a pinned version lets mod config recipes upgrade pull in later versions without editing this command; a pinned version stays where you put it.

Install the recipe module
mod config recipes go install github.com/moderneinc/recipes-go