Skip to content

Commit

Permalink
Update instrumentation doc to focus on OTel
Browse files Browse the repository at this point in the history
  • Loading branch information
knylander-grafana committed Nov 1, 2023
1 parent b3a45e2 commit 23a0860
Showing 1 changed file with 33 additions and 14 deletions.
47 changes: 33 additions & 14 deletions docs/sources/tempo/getting-started/instrumentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,53 +7,72 @@ aliases:
weight: 200
---


# Instrument for distributed tracing

Client instrumentation is the first building block to a functioning distributed tracing visualization pipeline.
Client instrumentation is the process of adding instrumentation points in the application that create and offload spans.

Check out these resources for help instrumenting tracing with your favorite languages.
Most of these guides include complete end-to-end examples with Grafana, Loki, and Tempo.
Most of these guides include complete end-to-end examples with Grafana, Loki, Mimir, and Tempo.

### Instrumentation frameworks
## Instrumentation frameworks

Most of the popular client instrumentation frameworks
have SDKs in the most commonly used programming languages.
Most of the popular client instrumentation frameworks have SDKs in the most commonly used programming languages.
You should pick one according to your application needs.

* [OpenTelemetry](https://opentelemetry.io/docs/concepts/instrumenting/)
* [OpenTracing/Jaeger](https://www.jaegertracing.io/docs/latest/client-libraries/)
* [Zipkin](https://zipkin.io/pages/tracers_instrumentation)
* [OpenTelemetry](https://opentelemetry.io/docs/concepts/instrumenting/)

### OpenTelemetry auto-instrumentation

Some languages have support for auto-instrumentation. These libraries capture telemetry
## OpenTelemetry

A collection of tools, APIs, and SDKs, [OpenTelemetry](https://grafana.com/docs/opentelemetry/) helps engineers instrument, generate, collect, and export telemetry data such as metrics, logs, and traces, to analyze software performance and behavior.

Check failure on line 30 in docs/sources/tempo/getting-started/instrumentation.md

View workflow job for this annotation

GitHub Actions / doc-validator

[doc-validator] reported by reviewdog 🐶 The link target 'https://grafana.com/docs/opentelemetry/' is invalid. Links to grafana.com pages must not include the hostname so that they can be resolved regardless of domain. Links to grafana.com pages must be one of the following: - For linking to headings within the current page, use an anchor starting with a hash (#). For example, #heading. - For linking to other pages in the current documentation set, use a Hugo relref with either an absolute path or relative path parameter. Using a relative path parameter, for example, {{< relref "./path/to/page" >}} or {{ relref "../other/path" }}. Using an absolute path parameter, for example, {{< relref "/docs/grafana-cloud" >}}. - For linking to any other page in the https://grafana.com site, use a partial URI consisting of an absolute path. For example, /blogs/. For an explanation of partial URIs, refer to https://www.w3.org/Addressing/URL/4_3_Partial.html. Raw Output: {"message":"The link target 'https://grafana.com/docs/opentelemetry/' is invalid. Links to grafana.com pages must not include the hostname so that they can be resolved regardless of domain.\nLinks to grafana.com pages must be one of the following:\n - For linking to headings within the current page, use an anchor starting with a hash (#).\n For example, #heading.\n\n - For linking to other pages in the current documentation set, use a Hugo relref with either an absolute path or relative path parameter.\n Using a relative path parameter, for example, {{< relref \"./path/to/page\" >}} or {{ relref \"../other/path\" }}.\n Using an absolute path parameter, for example, {{< relref \"/docs/grafana-cloud\" >}}.\n\n - For linking to any other page in the https://grafana.com site, use a partial URI consisting of an absolute path.\n For example, /blogs/.\n\nFor an explanation of partial URIs, refer to https://www.w3.org/Addressing/URL/4_3_Partial.html.","location":{"path":"docs/sources/tempo/getting-started/instrumentation.md","range":{"start":{"line":30,"column":40},"end":{"line":30,"column":96}}},"severity":1,"source":{"name":"doc-validator"},"code":{"value":"grafana-com-link-invalid"}}

### Auto-instrumentation frameworks

OpenTelemetry provides auto-instrumentation agents and libraries of Java, .Net, Python, Go, and JavaScript applications, among others.
For more information, refer for the [OpenTelemetry Instrumentation documentation](https://opentelemetry.io/docs/instrumentation/).

These libraries capture telemetry
information from a client application with minimal manual instrumentation of the codebase.

* [OpenTelemetry Java auto-instrumentation](https://github.com/open-telemetry/opentelemetry-java-instrumentation)
* [OpenTelemetry Java auto-instrumentation](https://github.com/open-telemetry/opentelemetry-java-instrumentation) and [documentation](/docs/opentelemetry/instrumentation/java/)
- [Java auto-instrumentation with Java and OTel Java Agent](/docs/opentelemetry/instrumentation/java/javaagent/)
- [Automatic instrumentation of Spring Boot 3.x applications with Grafana OpenTelemetry Starter](/docs/opentelemetry/instrumentation/java/spring-starter/)
* [OpenTelemetry .NET auto-instrumentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation)
* [OpenTelemetry Python auto-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib)
* [OpenTelemetry Go auto-instrumentation](https://github.com/open-telemetry/opentelemetry-go-instrumentation) and [documentation](https://opentelemetry.io/docs/instrumentation/go/getting-started/)

## OpenTelemetry

### Additional OTel resources

- [Java HTTP Metrics from OpenTelemetry Traces](/docs/opentelemetry/instrumentation/java/metrics-from-traces/)
- [OpenTelemetry documentation at Grafana](h/docs/opentelemetry)

Check failure on line 51 in docs/sources/tempo/getting-started/instrumentation.md

View workflow job for this annotation

GitHub Actions / doc-validator

[doc-validator] reported by reviewdog 🐶 The link to the project page 'h/docs/opentelemetry' is invalid. Links to project pages must use a Hugo relref shortcode like {{< relref "./path/to/page" >}} Raw Output: {"message":"The link to the project page 'h/docs/opentelemetry' is invalid. Links to project pages must use a Hugo relref shortcode like {{< relref \"./path/to/page\" >}}","location":{"path":"docs/sources/tempo/getting-started/instrumentation.md","range":{"start":{"line":51,"column":3},"end":{"line":51,"column":65}}},"severity":1,"source":{"name":"doc-validator"},"code":{"value":"project-link-invalid"},"suggestions":[{"range":{"start":{"line":51,"column":3},"end":{"line":51,"column":65}},"text":"[OpenTelemetry documentation at Grafana]({{< relref \"h/docs/opentelemetry\" >}})"}]}
- [OpenTelemetry Go instrumentation examples](https://github.com/open-telemetry/opentelemetry-go/tree/main/example)
- [OpenTelemetry Language Specific Instrumentation](https://opentelemetry.io/docs/instrumentation/)

## Jaeger
## Other instrumentation resources

### Jaeger

- [Jaeger Language Specific Instrumentation](https://www.jaegertracing.io/docs/latest/client-libraries/)

## Zipkin
### Zipkin

- [Zipkin Language Specific Instrumentation](https://zipkin.io/pages/tracers_instrumentation.html)

## Grafana Blog

The Grafana blot periodically features instrumentation posts.

- [Java Spring Boot Auto-Instrumentation](/blog/2021/02/03/auto-instrumenting-a-java-spring-boot-application-for-traces-and-logs-using-opentelemetry-and-grafana-tempo/)
- [Go + OpenMetrics Exemplars](/blog/2020/11/09/trace-discovery-in-grafana-tempo-using-prometheus-exemplars-loki-2.0-queries-and-more/)
- [.NET](/blog/2021/02/11/instrumenting-a-.net-web-api-using-opentelemetry-tempo-and-grafana-cloud/)
- [Python](/blog/2021/05/04/get-started-with-distributed-tracing-and-grafana-tempo-using-foobar-a-demo-written-in-python/)

## Community Resources
## Community resources

- [NodeJS](https://github.com/mnadeem/nodejs-opentelemetry-tempo)
- [Java Spring Boot](https://github.com/mnadeem/boot-opentelemetry-tempo)
- [Python](https://github.com/dgzlopes/foobar-demo)
- [Python](https://github.com/dgzlopes/foobar-demo)

0 comments on commit 23a0860

Please sign in to comment.