We want to make contributing to this project as easy and transparent as possible. Please see the OpenTelemetry CONTRIBUTING.md guidelines for project-wide information, including code of conduct, and contributor license agreements, copyright notices, and how to engage with the OpenTelemetry community.
The OpenTelemetry Protocol with Apache Arrow project was initially
developed in the github.com/f5/otel-arrow-adapter
repository. At
the time of the OpenTelemetry donation, this repository
was a construction of original code and code copied from the
OpenTelemetry Protocol with Apache Arrow Collector, which is
a fork of the OpenTelemetry Collector, as part of our
development process.
This repository contains the OpenTelemetry Protocol with Apache Arrow definition and Golang libraries for producing and consuming streams of data in this format.
Exporter and receiver components for the OpenTelemetry Collector were developed in parallel, maintained in this repository through release v0.24.0, and now they are included in release of the OpenTelemetry Collector-Contrib repository.
- Exporter: Send telemetry data using OpenTelemetry Protocol with Apache Arrow
- Receiver: Receive telemetry data using OpenTelemetry Protocol with Apache Arrow.
Historically, the exporter and receiver components were forked from the Collector's core OTLP Exporter and OTLP Receiver, and the original branch history is now archived in the OpenTelemetry Protocol with Apache Arrow Collector repository.
To (re)generate the ArrowStreamService gRPC service, you need to install the protoc
compiler and the protoc-gen-grpc
plugin.
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
export PATH="$PATH:$(go env GOPATH)/bin"
./proto/generate.sh
Once the *.pb.go
files are generated, you need to replace the content of the api/collector/arrow/v1
directory by the
generated files present in the ./proto/api/collector/arrow/v1
directory.
See the instructions in RELEASING.md.
This repository contains a top-level go.work
file. This enables the
Go modules defined here to avoid relative replace statements, which
interfere with the ability to run them via simple go install
and go run
commands. The go.work
file names all the module definitions
inside this repository and allows them all to be used at once during
local development.
When a new version of the OpenTelemetry collector, is available, the easiest way to upgrade this repository is:
- Update the
distribution::otelcol_version
field inotelarrowcol-build.yaml
- Modify any components from the core or contrib repositories to use the corresponding versions (e.g., pprofextension's module version should match the new collector release).
- Regenerate
otelarrowcol
viamake genotelarrowcol
- Run
go work sync
to update the other modules with fresh dependencies.