{"id":28501966,"url":"https://github.com/fluent/fluent-otel-proto","last_synced_at":"2025-06-26T08:33:23.918Z","repository":{"id":66268546,"uuid":"543371478","full_name":"fluent/fluent-otel-proto","owner":"fluent","description":"Generator of C interfaces for OpenTelemetry protobuf files","archived":false,"fork":false,"pushed_at":"2025-04-09T22:08:15.000Z","size":145,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-06-08T16:08:33.442Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/fluent.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-09-30T00:34:39.000Z","updated_at":"2025-04-09T19:36:35.000Z","dependencies_parsed_at":"2024-11-12T15:33:27.745Z","dependency_job_id":null,"html_url":"https://github.com/fluent/fluent-otel-proto","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fluent/fluent-otel-proto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-otel-proto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-otel-proto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-otel-proto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-otel-proto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluent","download_url":"https://codeload.github.com/fluent/fluent-otel-proto/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluent%2Ffluent-otel-proto/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262030376,"owners_count":23247637,"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":[],"created_at":"2025-06-08T16:08:39.169Z","updated_at":"2025-06-26T08:33:23.912Z","avatar_url":"https://github.com/fluent.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fluent OTel (OpenTelemetry) Proto files\n\nThis projects builds a static library that provides C interfaces for OpenTelemetry proto files data model and also includes some helper utilities.\n\nIn the source, the `.proto` files are already included in their `C` version, so here you will find instructions for:\n\n- build this as a static library\n- regenerate C interfaces from .proto files\n\nThe project exposes the following build options:\n\n## Build static library\n\nTo get start just clone this repository\n\n```\ngit clone https://github.com/fluent/fluent-otel-proto\n```\n\nJoin the build directory and compile:\n\n```\ncd fluent-otel-proto/build\ncmake ../\n```\n\nBy default an example test gets available:\n\n```\nexamples/test-api\n\n- opentelemetry proto 'common'  :     found\n- opentelemetry proto 'resource':     found\n- opentelemetry proto 'trace'   :     found\n- opentelemetry proto 'logs'    :     found\n- opentelemetry proto 'metrics' : not found (enable it with -DFLUENT_PROTO_METRICS)\n```\n\n\u003e Yes, Metrics are disabled for now.\n\n## Regenerate C files\n\nTo regenerate the C files inside this repo, you need to main dependencies or repositories:\n\n- [fluent/protobuf-c](https://github.com/fluent/protobuf-c)\n- [open-telemetry/opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-proto)\n\n### Download dependencies\n\n#### 1. Protobuf-c\n\nThe repository [fluent/protobuf-c](https://github.com/fluent/protobuf-c) is a fork of the official protobuf-c that includes a small modification to support `options` feature from proto3. This feature is only required by the OpenTelemetry Metrics data model.\n\nDownload and install `protobuf-c` by  running the following commands:\n\n```\ngit clone https://github.com/fluent/protobuf-c\ncd protobuf-c\n./autogen.sh\n./configure --prefix=/opt/protobuf-c\nmake\nsudo make install\n```\n\n#### 2. OpenTelemetry Proto\n\nDownload the main repository with the following command:\n\n```\ngit clone https://github.com/open-telemetry/opentelemetry-proto\n```\n\n#### 3. Clone this repository\n\n```bash\ngit clone https://github.com/fluent/fluent-otel-proto\n```\n\n#### 4. Regenerate C Files \n\nThe CMake command will require the following variable definitions to succeed in the C files regeneration:\n\n| Variable name           | Description                                                  |\n| ----------------------- | ------------------------------------------------------------ |\n| FLUENT_PROTO_REGENERATE | Enable the C source file regeneration. Disabled by default.  |\n| PROTOBUF_C_SOURCE_DIR   | Absolute path of the directory containing the sources of `protobuf-c` downloaded in Step 1. __NOTE__: this is the source code path, not where the binaries were installed. |\n| OTEL_PROTO_DIR          | Absolute path of the directory containing the sources of `opentelemetry-proto` downloaded in Step 2. |\n\nIn addition, the following build options are available if you desire to enable/disable certain feature:\n\n| Build Option          | Description                                                  | Default |\n| --------------------- | ------------------------------------------------------------ | ------- |\n| FLUENT_PROTO_COMMON   | Include the regeneration of a C interface for `common.proto` file. | On      |\n| FLUENT_PROTO_RESOURCE | Include the regeneration of a C interface for `resource.proto` file. | On      |\n| FLUENT_PROTO_TRACE    | Include the regeneration of a C interfaces for `trace.proto` and `trace_service.proto` files. | On      |\n| FLUENT_PROTO_LOGS     | Include the regeneration of a C interfaces for `logs.proto` and `logs_service.proto` files. | On      |\n| FLUENT_PROTO_METRICS  | Include the regeneration of a C interfaces for `metrics.proto` and `metrics_service.proto` files. | Off     |\n\n#### 5. Example\n\nGet into this project source code directory:\n\n```bash\ncd fluent-otel-proto/build/\n```\n\nRun CMake:\n\n```bash\ncmake -DFLUENT_PROTO_REGENERATE=ON \\\n      -DPROTOBUF_C_SOURCE_DIR=/tmp/protobuf-c \\\n      -DOTEL_PROTO_DIR=/tmp/opentelemetry-proto \\\n      ../\n```\n\nnow build by running `make` command.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluent%2Ffluent-otel-proto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluent%2Ffluent-otel-proto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluent%2Ffluent-otel-proto/lists"}