All clj-otel-*
module versions are released in lockstep to Clojars.
x.y.z
versions listed below do not follow semantic versioning.
Instead, development proceeds on a linear path where z
increases for batches of incremental changes and y
increases (with z
reset to 0
) when milestones are reached.
The changes are marked as follows:
[BREAK] is a breaking change in behaviour that requires user action to accommodate for when upgrading from a previous version
[ADD] is an addition of a new feature
[FIX] is a bug fix
[MAINT] is a maintenance change for general improvement and proactive avoidance of potential issues
Until version 1.0.0 there is a greater possibility of breaking changes.
|
0.x
changes0.2.7
(2024-07-01)Bump deps
[MAINT] OpenTelemetry 1.39.0
[ADD] Support for creating and setting gauges that take measurements synchronously.
Use steffan-westcott.clj-otel.api.metrics.instrument/set!
to synchronously set a gauge to a given measurement.
[ADD] Option to set explicit bucket boundaries advice for histograms
[ADD] :links
option for add-span-data!
[FIX] metrics-by-route-interceptors
should record requests that have 404 HTTP response code
[BREAK] Removed modules clj-otel-exporter-jaeger-grpc
and clj-otel-exporter-jaeger-thrift
as the Java libraries opentelemetry-exporter-jaeger
and opentelemetry-exporter-jaeger-thrift
are no longer published.
Jaeger has native support for OTLP, use clj-otel-exporter-otlp
instead to configure an OTLP exporter.
[BREAK] In module clj-otel-exporter-zipkin
, span-exporter
options :sender
and :encoder
now take zipkin2.reporter.BytesMessageSender
and zipkin2.codec.BytesEncoder
values
[MAINT] Various build deps
Refactored microservice examples
[MAINT] Removed uberjar build step.
All application instances now use a clojure
Docker image rather than custom image containing an uberjar.
[ADD] For telemetry backend, changed to use Grafana with Grafana Tempo and Prometheus. Preconfigured Grafana dashboards for metrics and traces are included.
[ADD] Added state lifecycle management, using with-open
and closeable
pattern.
[MAINT] Altered Ring/Pedestal servers to reload routes on every HTTP request.
[ADD] Added embedded nREPL server to all application and load-gen instances for remote access.
[ADD] Example rpg-service
with instrumented database access
[FIX] Updated examples and guide when using wrap-metrics-by-route
to also wrap Reitit default handler.
This ensures correct recording of metrics for HTTP server spans with 404, 405 and 406 response codes.
0.2.6
(2024-01-15)Bump deps
[MAINT] OpenTelemetry 1.34.1
[BREAK] OpenTelemetry instrumentation agent 2.0.0
The default OTLP exporter protocol used by the agent has changed from grpc
to http/protobuf
.
See the release notes for details on this and other breaking changes.
Note the default OTLP exporter protocol used by the autoconfigure SDK extension remains as grpc
.
[MAINT] Various build deps
0.2.5
(2024-01-01)[FIX] Queried header names in context propagator text maps (for manually instrumented applications) should be lower-cased.
Previously, b3multi
and xray
propagators would fail because header names in Ring request
maps are lower-cased but the queried header name may not.
[ADD] Module clj-otel-sdk-common
which wraps the OpenTelemetry SDK common library.
[BREAK] Moved function merge-resources-with-default
to new module clj-otel-sdk-common
.
[ADD] Terse syntax alternatives for span-opts
map parameter in new-span!
and related functions that create spans.
[ADD] Convenience function add-event!
to add an event to the bound or current span.
[ADD] Populate err.type
trace semantic attribute on manually created client and server spans.
[ADD] Middleware wrap-compojure-route
that adds the matched Compojure route to the server span and request map.
[MAINT] Ensure example microservices uberjars are built and run on the same JDK.
Bump deps
[MAINT] OpenTelemetry 1.33.0
[MAINT] Various build deps
0.2.4.1
(2023-10-01)[ADD] Module clj-otel-sdk-extension-autoconfigure
which wraps the autoconfigure OpenTelemetry SDK extension.
Updated guide on using the autoconfigure module and adding initialisation code to application.
[ADD] Updated functions to use a default OpenTelemetry
instance declared by clj-otel
, falling back to the global OpenTelemetry
instance declared by Java OpenTelemetry if no default instance was previously configured.
Added recommendation to prefer use of default OpenTelemetry
instance over the global OpenTelemetry
instance, when using autoconfigure module or programmatic configuration of SDK.
Use of system property otel.java.global-autoconfigure.enabled
or environment variable OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED
is discouraged.
[BREAK] steffan-westcott.clj-otel.sdk.otel-sdk/init-otel-sdk!
has a new option register-shutdown-hook
enabled by default.
[ADD] New middleware (formerly part of the microservices examples)
wrap-exception-event
adds an exception event to the server span.
This is intended for use by applications which transform the exception to an HTTP response in a subsequent middleware.
wrap-reitit-route
adds the matched Reitit route to the server span and request map.
[ADD] New interceptor exception-event-interceptor
adds an exception event to the server span.
This is intended for use by applications which transform the exception to an HTTP response in a subsequent interceptor.
[ADD] Function steffan-westcott.clj-otel.instrumentation.runtime-telemetry-java8/close!
to stop JVM telemetry.
steffan-westcott.clj-otel.instrumentation.runtime-telemetry-java8/register!
now returns a collection of AutoCloseable
.
[MAINT] Removed :dev
alias for development.
[MAINT] Reworked examples to be easier to run. Added load generator applications to microservices examples.
Bump deps:
[MAINT] OpenTelemetry 1.30.1
[BREAK] clj-otel-exporter-jaeger-*
are now deprecated, use clj-otel-exporter-otlp
instead
[BREAK] Now using io.opentelemetry.semconv/opentelemetry-semconv
semantic conventions.
This impacts manually instrumented HTTP server applications using clj-otel
middleware or interceptors, as several semantic attributes have changed.
[MAINT] Various build deps
0.2.3
(2023-06-18)[ADD] Support for programmatic configuration of MeterProvider
for metrics export.
[ADD] Module clj-otel-exporter-prometheus
for programmatic configuration of metrics export to Prometheus
[FIX] steffan-westcott.clj-otel.util/duration
should convert [amount ^TimeUnit unit]
to Duration
Bump deps:
[MAINT] OpenTelemetry 1.27.0
[BREAK] The default value for autoconfiguration property otel.logs.exporter
has changed from none
to otlp
[BREAK] Module clj-otel-instrumentation-runtime-metrics
has been renamed and split into modules clj-otel-instrumentation-runtime-telemetry-java8
and clj-otel-instrumentation-runtime-telemetry-java17
0.2.2
(2023-06-05)[ADD] Opt-in feature bound context, a Clojure dynamic var that overrides the default context
or parent
parameter value for clj-otel
functions.
This feature is intended to simplify asynchronous code by eliminating explicit context passing.
Existing code that uses the current context or explicit context parameter values is unaffected.
[FIX] Convert key names of entries added to OpenTelemetry attributes to snake_case. This applies to resources, spans and metrics.
[FIX] Do not transform key names of entries added to OpenTelemetry context or baggage.
[ADD] Function set-attribute-name-fn!
to override setting of OpenTelemetry attribute key names.
[MAINT] Remove Jaeger exporters from examples, since they will be deprecated soon. The Jaeger Collector now accepts OTLP directly. See the Jaeger clients deprecation notice.
Bump deps:
[MAINT] OpenTelemetry contrib 1.26.0-alpha
[MAINT] Various build deps
0.2.1
(2023-05-08)[FIX] Use .
instead of /
in namespace qualified attribute names
[MAINT] Removed deprecated build dep build-clj
Bump deps:
[MAINT] OpenTelemetry 1.26.0
[MAINT] Various build deps
0.2.0
(2023-04-10)[ADD] Support for Metrics API
[ADD] Implementations of the following HTTP server metrics for use by applications not run with the OpenTelemetry instrumentation agent:
http.server.active_requests
http.server.duration
http.server.request.size
[BREAK] The parameters for function add-route-data!
have changed, there is a new parameter to specify the HTTP request method.
[BREAK] The pattern for using clj-otel
middleware and interceptors in applications has been revised.
The revised pattern adds new middleware wrap-route
, wrap-active-requests
and
wrap-metrics-by-route
and interceptors route-interceptor
, active-requests-interceptor
and metrics-by-route-interceptors
to capture matched routes in HTTP server spans and HTTP server metrics.
The pattern also ensures all requests are recorded, including those which do not match any route.
[ADD] Module clj-otel-instrumentation-runtime-metrics
to provide access to JVM runtime metrics instrumentation for applications not using the OpenTelemetry instrumentation agent.
[ADD] Aliases in examples
:metrics-*
to control export of metrics
:logging-*
to control application logging
Bump deps:
[MAINT] OpenTelemetry 1.25.0
[BREAK] When using autoconfiguration for a manually instrumented application, include the new JVM option "-Dotel.java.global-autoconfigure.enabled=true"
or environment variable setting OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED=true
Methods to statically set the server host name attribute on server spans have been removed, as static data is better represented as an OpenTelemetry resource.
[BREAK] The function add-server-name!
has been removed.
[BREAK] The option :server-name
has been removed from the middleware and interceptors for server span support.
[BREAK] Module clj-otel-extension-aws
renamed to clj-otel-contrib-aws-xray-propagator
[BREAK] Module clj-otel-sdk-extension-aws
renamed to clj-otel-contrib-aws-resources
[BREAK] Module clj-otel-sdk-extension-resources
renamed to clj-otel-instrumentation-resources
[MAINT] Various build deps
0.1.5
(2022-09-03)Bump deps:
[MAINT] OpenTelemetry 1.17.0
[MAINT] Various build deps
0.1.4
(2022-07-05)[ADD] Support for including source code semantic attributes when creating spans.
By default, attributes identifying the namespace, line number and source file path are included in spans created by with-span!
, with-span-binding
, and async-span
.
[ADD] Update Pedestal HTTP server span support to always add route data to server spans
Bump deps:
[MAINT] OpenTelemetry 1.15.0
[BREAK] Modules clj-otel-exporter-otlp-*
are merged to new module clj-otel-exporter-otlp
[MAINT] Various build deps
0.1.3
(2022-05-22)Bump deps:
[MAINT] OpenTelemetry 1.14.0
[MAINT] Various build deps
0.1.2
(2022-04-13)[ADD] Include ExceptionInfo
data as attributes in exception span events, by default
[FIX] Update examples to use namespaced attributes for spans and events
Bump deps:
[MAINT] OpenTelemetry 1.13.0
[BREAK] The default value for autoconfiguration property otel.metrics.exporter
has changed from none
to otlp
[MAINT] Clojure 1.11.1
[MAINT] Various build deps
0.1.1
(2022-03-13)Bump deps:
[MAINT] OpenTelemetry 1.12.0
[MAINT] Various build deps
0.1.0
(2022-02-27)Initial release
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close