OpenTelemetry R API

High-quality, ubiquitous, and portable telemetry to enable effective observability. OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior. This package implements the OpenTelemetry API: < https://opentelemetry.io/docs/specs/otel/>. Use this package as a dependency if you want to instrument your R package for OpenTelemetry.


otel

OpenTelemetry API for R packages and projects

lifecycle R-CMD-check R-CMD-check Codecov testcoverage

OpenTelemetry is an observability framework. OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument, generate, collect, and export telemetry data such as metrics, logs, and traces, for analysis in order to understand your software’s performance and behavior.

For an introduction to OpenTelemetry, see the OpenTelemetry website docs.

To learn how to instrument your R code, see Getting Started. For project status, installation instructions and more, read on.

Features

  • Lightweight packages. otel is a small R package without dependencies and compiled code. otelsdk needs a C++11 compiler and otel.
  • Minimal performance impact when tracing is disabled. otel functions do not evaluate their arguments in this case.
  • Zero-code instrumentation support. Add tracing to (some) functions of selected packages automatically.
  • Configuration via environment variables.
  • Minimal extra code. Add tracing to a function with a single extra function call.
  • Production mode: otel functions do not crash your production app in production mode.
  • Development mode: otel functions error early in development mode.

Getting started

Set otel_tracer_name to the desired tracer name. (See ?otel_tracer_name.) Then add otel::start_local_active_span() calls to the functions you want to trace:

otel_tracer_name <- "<package-id>"
fn <- function(...) {
  spn <- otel::start_local_active_span("fn")
  ...
}

See Getting Started for details.

The otel and otelsdk R packages

Use the otel package as a dependency if you want to instrument your R package or project for OpenTelemetry.

Use the otelsdk package to produce OpenTelemetry output from an R package or project that was instrumented with the otel package.

Reference Documentation

Status

The current status of the major functional components for OpenTelemetry R is as follows:

Traces Metrics Logs
Development Development Development

Version support

otel and otelsdk support R 3.6.0 and higher on Unix and R 4.3.0 or higher on Windows.

Installation

Install otel from CRAN:

# install.packages("pak")
pak::pak("otel")

You can install the development version of otel from GitHub with:

# install.packages("pak")
pak::pak("r-lib/otel")

Repositories

License

MIT © Posit, PBC

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("otel")

0.2.0 by Gábor Csárdi, a year ago


https://otel.r-lib.org, https://github.com/r-lib/otel


Report a bug at https://github.com/r-lib/otel/issues


Browse source code at https://github.com/cran/otel


Authors: Gábor Csárdi [aut, cre]


Documentation:   PDF Manual  


MIT + file LICENSE license


Suggests callr, cli, glue, jsonlite, otelsdk, processx, shiny, spelling, testthat, utils, withr


Imported by callr, fiery, mcplite, otelsdk, promises, reqres, routr, shiny, shinyOAuth.

Suggested by DBI, bidux, commons, ellmer, httr2, knitr, mirai, testthat, wrswoR.


See at CRAN