{"id":17180305,"url":"https://github.com/jjatria/perl-opentelemetry-sdk","last_synced_at":"2025-04-13T16:31:06.296Z","repository":{"id":147068097,"uuid":"567920116","full_name":"jjatria/perl-opentelemetry-sdk","owner":"jjatria","description":"An implementation of the OpenTelemetry SDK for Perl","archived":false,"fork":false,"pushed_at":"2024-10-22T13:56:19.000Z","size":294,"stargazers_count":9,"open_issues_count":7,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-31T21:42:45.435Z","etag":null,"topics":["opentelemetry","perl"],"latest_commit_sha":null,"homepage":"https://metacpan.org/pod/OpenTelemetry::SDK","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jjatria.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-18T22:43:33.000Z","updated_at":"2024-08-11T02:02:02.000Z","dependencies_parsed_at":"2024-06-28T19:50:13.386Z","dependency_job_id":"fc664562-a9d0-4818-b0ed-a4ddfa252039","html_url":"https://github.com/jjatria/perl-opentelemetry-sdk","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjatria%2Fperl-opentelemetry-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjatria%2Fperl-opentelemetry-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjatria%2Fperl-opentelemetry-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjatria%2Fperl-opentelemetry-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjatria","download_url":"https://codeload.github.com/jjatria/perl-opentelemetry-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223597074,"owners_count":17170872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["opentelemetry","perl"],"created_at":"2024-10-15T00:29:20.222Z","updated_at":"2024-11-07T22:03:54.478Z","avatar_url":"https://github.com/jjatria.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# An OpenTelemetry SDK for Perl\n\n[![Coverage Status][badge]][coveralls]\n\nThis is part of an ongoing attempt at implementing the OpenTelemetry standard\nin Perl. The distribution in this repository implements the OpenTelemetry SDK,\nwhich would allow an application can collect, analyze, and export telemetry\ndata. Currently only distributed traces are supported, but work on metrics and\nlogs should come next.\n\n## What is OpenTelemetry?\n\n[OpenTelemetry][home] is an open source observability framework, providing a\ngeneral-purpose API, SDK, and related tools required for the instrumentation\nof cloud-native software, frameworks, and libraries.\n\nOpenTelemetry provides a single set of APIs, libraries, agents, and collector\nservices to capture distributed traces and metrics from your application. You\ncan analyze them using Prometheus, Jaeger, and other observability tools.\n\n## How does this distribution fit in?\n\nThis distribution provides the reference implementation of the OpenTelemetry\nPerl interfaces currently defined in the experimental [OpenTelemetry][api]\ndistribution. That is, it includes the *functionality* needed to collect,\nanalyze, and export telemetry data produced using the API.\n\nGenerally, Perl *applications* should install this distribution (or other\nconcrete implementation of the OpenTelemetry API). Using the SDK, an\napplication can configure how it wants telemetry data to be handled,\nincluding which data should be persisted, how it should be formatted, and\nwhere it should be recorded or exported. However, *libraries* that produce\ntelemetry data should generally depend only on [OpenTelemetry][api],\ndeferring the choice of concrete implementation to the application developer.\n\n## How do I get started?\n\nInstall this distribution from CPAN:\n```\ncpanm OpenTelemetry::SDK\n```\nor directly from the repository if you want to install a development\nversion (although note that only the CPAN version is recommended for\nproduction environments):\n```\n# On a local fork\ncd path/to/this/repo\ncpanm install .\n\n# Over the net\ncpanm https://github.com/jjatria/perl-opentelemetry-sdk.git\n```\n\nThen, configure the SDK according to your desired handling of telemetry data,\nand use the OpenTelemetry interfaces to produces traces and other information.\nFollowing is a basic example (although bear in mind this interface is still\nbeing drafted, so some details might still change):\n\n``` perl\nuse strict;\nuse warnings;\nuse feature 'signatures';\n\n# Importing the SDK will configure it with default export and context\n# propagation formats.\nuse OpenTelemetry::SDK;\n\n# Many configuration options may be set via the environment. To use them,\n# set the appropriate variable before you import the SDK. For example:\n#\n# require OpenTelemetry::SDK;\n#\n# $ENV{OTEL_TRACES_EXPORTER} = 'console';\n# $ENV{OTEL_PROPAGATORS}     = 'ottrace';\n# OpenTelemetry::SDK-\u003eimport;\n#\n# You can also use instrumentation libraries to automatically enable telemetry\n# for specific code:\n#\n# use OpenTelemetry::Integration 'HTTP::Tiny';\n#\n# Or configure the SDK programmatically, if your use case requires it:\n#\n# OpenTelemetry-\u003etracer_provider-\u003eadd_span_processor(\n#     OpenTelemetry::SDK::Trace::Span::Processor::Simple-\u003enew(\n#         exporter =\u003e OpenTelemetry::SDK::Exporter::Console-\u003enew\n#     ),\n# );\n#\n# Note that the Simple span exporter is not recommended for use in production.\n\n# To start a trace you need to get a Tracer from the TracerProvider\nmy $tracer = OpenTelemetry-\u003etracer_provider-\u003etracer(\n    name    =\u003e 'my_app_or_module',\n    version =\u003e '0.1.0',\n);\n\n# Create a span\n$tracer-\u003ein_span( foo =\u003e sub ( $span, $ ) {\n    # Set an attribute\n    $span-\u003eset_attribute(  platform =\u003e 'osx' );\n    # Add an event\n    $span-\u003eadd_event( name =\u003e 'event in foo' );\n    # Create bar as child of foo\n    $tracer-\u003ein_span( bar =\u003e sub ( $child_span, $ ) {\n        # Inspect the span\n        use DDP;\n        p $child_span;\n    })\n});\n```\n\nAdditional examples will be added as development progresses. Make sure to\ncheck again soon, or try your hand at submitting some of your own.\n\n## How can I get involved?\n\nWe are in the process of setting up an OpenTelemetry-Perl special interest\ngroup (SIG). Until that is set up, you are free to [express your\ninterest][sig] or join us in IRC on the #io-async channel in irc.perl.org.\n\n## License\n\nThe OpenTelemetry::SDK distribution is licensed under the Artistic License 2.0.\nSee [LICENSE] for more information.\n\n[api]: https://github.com/jjatria/perl-opentelemetry\n[badge]: https://coveralls.io/repos/github/jjatria/perl-opentelemetry-sdk/badge.svg?branch=main\n[coveralls]: https://coveralls.io/github/jjatria/perl-opentelemetry-sdk?branch=main\n[home]: https://opentelemetry.io\n[license]: https://github.com/jjatria/perl-opentelemetry-sdk/blob/main/LICENSE\n[sig]: https://github.com/open-telemetry/community/issues/828\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjatria%2Fperl-opentelemetry-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjatria%2Fperl-opentelemetry-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjatria%2Fperl-opentelemetry-sdk/lists"}