-
Notifications
You must be signed in to change notification settings - Fork 263
Description
Hello OTel community. I've had one or two conversations with organizations interested in using a Perl implementation of OpenTelemetry. This issue is to gauge interest in maintaining a Perl implementation.
Since newcomers may be reading this issue, here's brief overview of the components that an OpenTelemetry client is composed of:
- API: the public interfaces used by developers to instrument their code. At runtime, the API can be bound to an implementation. By default, the API provides a no-op implementation. The SDK and a mock/test implementation are the two other common implementations.
- SDK: a official implementation, which follows the SDK spec. The SDK is a framework which consists of plugin interfaces for Exporters, SpanProcessors, etc.
- SDK Plugins: official implementations of common plugins, such as Zipkin, Prometheus, and OTLP exporters.
- Instrumentation Libraries: packages which use the API to provide instrumentation for HTTP clients, databases, web frameworks, and other common libraries.
- Semantic Conventions: Constants and helpers which ensure that instrumentation libraries produce consistent data across different languages.
All of the nitty-gritty details can be found in the OpenTelemetry Specification.
At minimum, this group would need to do the following:
- Define the OpenTelemetry API and Semantic Conventions in Perl, following the spec.
- Define an installation mechanism for the OpenTelemetry SDK, plugins, and instrumentation libraries
- In some languages we try to automate installation, but that is not a requirement.
- Help the community maintain instrumentation for common Perl libraries.
The group would also need to pick one of two approaches to maintaining an SDK implementation:
- Maintain an SDK and the required SDK plugins in Perl.
- Maintain an FFI bridge to another SDK implementation, such as C++. I believe that SWIG and Perl XS are the available FFI options.
The FFI approach may be attractive, as maintaining a production ready SDK represents a lot of work. But I'm not a Perl expert and I don't know what kinds of disadvantages a FFI implementation may come with.
If anyone has interest in contributing to this effort, please introduce yourself! Questions are welcome.