OpenTelemetry.jl

doc CI codecov ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

An unofficial implementation of OpenTelemetry in Julia.

Get Started

Logs

using OpenTelemetry
using Term # optional, for better display
using Logging

@info "Hello, World!"
@warn "from"
@error "OpenTelemetry.jl!"

Traces

with_span("Hello, World!") do
    with_span("from") do
        @info "OpenTelemetry.jl!"
    end
end

Metrics

m = Meter("demo_metrics");
c = Counter{Int}("fruit_counter", m);

c(; name = "apple", color = "red")
c(2; name = "lemon", color = "yellow")
c(1; name = "lemon", color = "yellow")
c(2; name = "apple", color = "green")
c(5; name = "apple", color = "red")
c(4; name = "lemon", color = "yellow")

r = MetricReader();
r()

Tutorial

It's recommended to walk through these tutorials one-by-one.

Tips for Developers

(WIP)

  • Understand the Architecture of OpenTelemetry.jl
  • How to Add Instrumentation to a Third-party Package?
  • How to Extend OpenTelemetrySDK?
  • Conventions and Best Practices to Instrument Your Application

FAQ

Some frequently asked questions are maintained here. If you can't find the answer to your question there, please create an issue. Your feedback is VERY IMPORTANT to the quality of this package❤.

Packages

PackageDescriptionLatest Version
OpenTelemetryAPICommon data structures and interfaces. Instrumentations should rely on it only.version
OpenTelemetrySDKBased on the specification, application owners use SDK constructors; plugin authors use SDK plugin interfacesversion
OpenTelemetryProtoSee the OTLP specification. Note the major and minor version is kept the same with the original opentelemetry-proto version.version
OpenTelemetryExporterOtlpProtoGrpcProvide an AbstractExporter in OTLP through gRPC. (WARNING!!! This package is not updated to the latest version yet since gRPCClient.jl doesn't support ProtoBuf.jl@v1 yet.)version
OpenTelemetryExporterOtlpProtoHttpProvide exporters in OTLP through HTTP.version
OpenTelemetryExporterPrometheusProvide a meter to allow pulling metrics from Prometheusversion
OpenTelemetryReexport all above. For demonstration and test only. Application users should import OpenTelemetrySDK in combination with necessary plugins or instrumentations explicitly.version