Skip to content

Perl SIG: current level of interest? #828

@tedsuo

Description

@tedsuo

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions