{"id":13635192,"url":"https://github.com/open-telemetry/opentelemetry-proto","last_synced_at":"2025-05-14T09:12:41.668Z","repository":{"id":37466595,"uuid":"187943341","full_name":"open-telemetry/opentelemetry-proto","owner":"open-telemetry","description":"OpenTelemetry protocol (OTLP) specification and Protobuf definitions","archived":false,"fork":false,"pushed_at":"2025-04-29T11:43:11.000Z","size":755,"stargazers_count":664,"open_issues_count":45,"forks_count":280,"subscribers_count":53,"default_branch":"main","last_synced_at":"2025-05-08T00:08:17.800Z","etag":null,"topics":["opentelemetry"],"latest_commit_sha":null,"homepage":"https://opentelemetry.io/docs/specs/otlp/","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-telemetry.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-05-22T01:55:25.000Z","updated_at":"2025-05-07T17:21:36.000Z","dependencies_parsed_at":"2024-05-13T17:15:39.752Z","dependency_job_id":"2e72de7d-359e-403b-a29a-779f422be97f","html_url":"https://github.com/open-telemetry/opentelemetry-proto","commit_stats":{"total_commits":365,"total_committers":76,"mean_commits":4.802631578947368,"dds":0.726027397260274,"last_synced_commit":"4f69356d853029975649c3f38b06fc77d77975fc"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-proto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-proto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-proto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-telemetry%2Fopentelemetry-proto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-telemetry","download_url":"https://codeload.github.com/open-telemetry/opentelemetry-proto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254110377,"owners_count":22016391,"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"],"created_at":"2024-08-02T00:00:42.189Z","updated_at":"2025-05-14T09:12:41.644Z","avatar_url":"https://github.com/open-telemetry.png","language":"Makefile","funding_links":[],"categories":["others","Makefile","Repositories"],"sub_categories":[],"readme":"# OpenTelemetry Protocol (OTLP) Specification\n\n[![Build Check](https://github.com/open-telemetry/opentelemetry-proto/workflows/Build%20Check/badge.svg?branch=main)](https://github.com/open-telemetry/opentelemetry-proto/actions?query=workflow%3A%22Build+Check%22+branch%3Amain)\n\nThis repository contains the [OTLP protocol specification](docs/specification.md)\nand the corresponding Language Independent Interface Types ([.proto files](opentelemetry/proto)).\n\n## Language Independent Interface Types\n\nThe proto files can be consumed as GIT submodules or copied and built directly in the consumer project.\n\nThe compiled files are published to central repositories (Maven, ...) from OpenTelemetry client libraries.\n\nSee [contribution guidelines](CONTRIBUTING.md) if you would like to make any changes.\n\n## OTLP/JSON\n\nSee additional requirements for [OTLP/JSON wire representation here](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md#json-protobuf-encoding).\n\n## Generate gRPC Client Libraries\n\nTo generate the raw gRPC client libraries, use `make gen-${LANGUAGE}`. Currently supported languages are:\n\n* cpp\n* csharp\n* go\n* java\n* objc\n* openapi (swagger)\n* php\n* python\n* ruby\n\n## Maturity Level\n\n1.0.0 and newer releases from this repository may contain unstable (alpha or beta)\ncomponents as indicated by the Maturity table below.\n\n| Component | Binary Protobuf Maturity | JSON Maturity |\n| --------- |--------------- | ------------- |\n| common/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |\n| resource/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |\n| metrics/\\*\u003cbr\u003ecollector/metrics/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |\n| trace/\\*\u003cbr\u003ecollector/trace/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |\n| logs/\\*\u003cbr\u003ecollector/logs/* | Stable | [Stable](docs/specification.md#json-protobuf-encoding) |\n| profiles/\\*\u003cbr\u003ecollector/profiles/* | Development | [Development](docs/specification.md#json-protobuf-encoding) |\n\n(See [Versioning and Stability](https://github.com/open-telemetry/opentelemetry-specification/blob/a08d1f92f62acd4aafe4dfaa04ae7bf28600d49e/specification/versioning-and-stability.md)\nfor definition of maturity levels).\n\n## Stability Definition\n\nComponents marked `Stable` provide the following guarantees:\n\n- Field types, numbers and names will not change.\n- Service names and `service` package names will not change.\n- Service method names will not change. [from 1.0.0]\n- Service method parameter names will not change. [from 1.0.0]\n- Service method parameter types and return types will not change. [from 1.0.0]\n- Service method kind (unary vs streaming) will not change.\n- Names of `message`s and `enum`s will not change. [from 1.0.0]\n- Numbers assigned to `enum` choices will not change.\n- Names of `enum` choices will not change. [from 1.0.0]\n- The location of `message`s and `enum`s, i.e. whether they are declared at the top lexical\n  scope or nested inside another `message` will not change. [from 1.0.0]\n- Package names and directory structure will not change. [from 1.0.0]\n- `optional` and `repeated` declarators of existing fields will not change. [from 1.0.0]\n- No existing symbol will be deleted.  [from 1.0.0]\n\nNote: guarantees marked [from 1.0.0] will go into effect when this repository is tagged\nwith version number 1.0.0.\n\nThe following additive changes are allowed:\n\n- Adding new fields to existing `message`s.\n- Adding new `message`s or `enum`s.\n- Adding new choices to existing `enum`s.\n- Adding new choices to existing `oneof` fields.\n- Adding new `service`s.\n- Adding new `method`s to existing `service`s.\n\nAll the additive changes above must be accompanied by an explanation about how\nnew and old senders and receivers that implement the version of the protocol\nbefore and after the change interoperate.\n\n## Experiments\n\n### New Experimental Components  \n\nSometimes we need to experiment with new components, for example to add a\ncompletely new signal to OpenTelemetry. In this case, to define new experimental\ncomponents we recommend placing new proto files in a \"development\" sub-directory.\nSuch isolated experimental components are excluded from\nabove [stability requirements](#stability-definition).\n\nWe recommend using\n`Development`, `Alpha`, `Beta`, `Release Candidate`\n[levels](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0232-maturity-of-otel.md#maturity-levels)\nto communicate different grades of readiness of new components.\n\nExperimental components may be removed completely at the end of the experiment,\nprovided that they are not referenced from any `Stable` component.\n\nExperiments which succeed, require a review to be marked `Stable`. Once marked\n`Stable` they become subject to the [stability requirements](#stability-definition).\n\n### Experimental Additions to Stable Components\n\nNew experimental fields or messages may be added in `Development` state to `Stable`\ncomponents. The experimental fields and messages within `Stable components` are subject\nto the full [stability requirements](#stability-definition), and in addition, they must be\nclearly labeled as `Development` (or as any other non-`Stable` level) in the .proto file\nsource code.\n\nIf an experiment concludes and the previously added field or message is not needed\nanymore, the field/message must stay, but it may be declared \"deprecated\". During all\nphases of experimentation it must be clearly specified that the field or message may be\ndeprecated. Typically, deprecated fields are left empty by the senders and the recipients\nthat participate in experiments must expect during all experimental phases (including\n_after_ the experiment is concluded) that the experimental field or message has an\nempty value.\n\nExperiments which succeed, require a review before the field or the message is marked\n`Stable`.\n\n## Generated Code\n\nNo guarantees are provided whatsoever about the stability of the code that\nis generated from the .proto files by any particular code generator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-telemetry%2Fopentelemetry-proto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-telemetry%2Fopentelemetry-proto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-telemetry%2Fopentelemetry-proto/lists"}