All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning. The format is based on Keep a Changelog.
- Trace attribute
db.client.response.returned_rows
for queries viacds.ql
- ConsoleSpanExporter:
cds.context
may be undefined in local scripting scenarios
- Use attribute
url.path
(with fallback to deprecatedhttp.target
) for sampling decision
- Predefined kind
telemetry-to-otlp
that creates exporters based on OTLP exporter configuration via environment variables - Experimental!: Propagate W3C trace context to SAP HANA via session context
SAP_PASSPORT
- Enable via environment variable
SAP_PASSPORT
- Enable via environment variable
- If
@opentelemetry/instrumentation-runtime-node
is in the project's dependencies but not incds.env.requires.telemetry.instrumentations
, it is registered automatically- Disable via
cds.env.requires.telemetry.instrumentations.instrumentation-runtime-node = false
- Disable via
- Base config moved to new
cds.requires.kinds.telemetry
for improved config merging
- Built-in
ConsoleMetricExporter
uses correct attribute nameprocess.cpu.state
while exporting host metrics - Exporting traces to the console in the presence of a traceparent header
- Explicitly pass own providers when registering instrumentations (the global providers may be influenced by, for example, Dynatrace OneAgent)
- Support for tracing native db statements (i.e.,
cds.run('SELECT * FROM DUMMY')
) - Support for SAP Cloud Logging credentials via user-provided service
- Support for adding
@opentelemetry/instrumentation-runtime-node
npm add @opentelemetry/instrumentation-runtime-node
- To
cds.requires.telemetry.instrumentations
, add:"instrumentation-runtime-node": { "class": "RuntimeNodeInstrumentation", "module": "@opentelemetry/instrumentation-runtime-node" }
- Instrumentations are registered after tracing and metrics are set up
telemetry-to-dynatrace
: Regardless of whether Dynatrace OneAgent is present or not, if dependency@opentelemetry/exporter-trace-otlp-proto
is present,@cap-js/telemetry
will export the traces via OpenTelemetry.
- Tracing of db statements without active span
- Only startup plugin if invoked for runtime (e.g., via cli
cds serve
)
- Detect build job started via
@sap/cds-dk/bin/cds.js
- Avoid credentials validation during
cds build
- Support for local modules (e.g., exporters) via
[...].module = '<path relative to cds.root>'
- Disable pool metrics via
cds.env.requires.telemetry.metrics._db_pool = false
(beta)
- Get credentials from
cds.env
- Validate existence of credentials only for configured kind
- HTTP attributes only for root spans (reduces trace payload size)
- Support for own, high resolution timestamps
- Enable via
cds.env.requires.telemetry.tracing.hrtime = true
- Enabled by default in development profile
- Enable via
- Register span processor also if tracer provider is initialized by a different module
- Support for so-called Pull Metric Exporter (e.g.,
@opentelemetry/exporter-prometheus
) - Tenant-dependent DB attributes
- By default, all
system.*
metrics collected by@opentelemetry/host-metrics
are ignored- Disable change via environment variable
HOST_METRICS_RETAIN_SYSTEM=true
- Disable change via environment variable
- Metric exporter's property
temporalityPreference
always gets defaulted toDELTA
- Was previously only done for kind
telemetry-to-dynatrace
- Set custom value via
cds.env.requires.telemetry.metrics.exporter.config.temporalityPreference
- Was previously only done for kind
- Identification of first-level spans in built-in
ConsoleSpanExporter
- Re-use
TracerProvider
andMeterProvider
that were initialized by a different module (OpenTelemetry only allows one-time initialization)
NonRecordingSpan
s are handled correctly
- Support for exporting traces to Dynatrace via OpenTelemetry exporter (instead of Dynatrace OneAgent)
- Support for Dynatrace credentials via user-provided service
@opentelemetry/host-metrics
is automatically fired up, if it is in the project's dependencies
- Predefined kind for SAP Cloud Logging (
telemetry-to-cloud-logging
) - Built-in
ConsoleMetricExporter
prints DB pool and other metrics separately
- Initial release