Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verify and update OTLP trace exporter documentation #2053

Merged
merged 32 commits into from
Sep 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
cae7a4c
Inventory the documentation for and examples of the OTLP exporter.
Submarinee Jul 3, 2021
604068f
Merge remote-tracking branch 'origin/main' into otelgo
Submarinee Jul 3, 2021
cb6825c
modify the documentation for otlptrace exporter.
Submarinee Jul 6, 2021
d071601
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 7, 2021
f228643
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 7, 2021
c2699ab
Merge branch 'main' into main
Submarinee Jul 8, 2021
f21d279
Merge branch 'open-telemetry:main' into main
Submarinee Jul 25, 2021
cd897ea
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 25, 2021
e3edec9
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 25, 2021
5608a4a
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 25, 2021
1b02def
add otlptrace example_test.go
Submarinee Jul 25, 2021
af8e6ab
modify the documentation for otlptrace exporter.
Submarinee Jul 25, 2021
4f1cd37
modify the documentation for otlptrace exporter.
Submarinee Jul 25, 2021
e42228a
Merge remote-tracking branch 'otelgo/main' into otlpmetric
Submarinee Jul 25, 2021
2ac7886
Update exporters/otlp/otlptrace/example_test.go
Submarinee Jul 30, 2021
f6dea98
Update exporters/otlp/otlptrace/example_test.go
Submarinee Jul 30, 2021
b594d45
Update exporters/otlp/otlptrace/example_test.go
Submarinee Jul 30, 2021
6ccfb2c
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 30, 2021
8f471b0
Merge branch 'open-telemetry:main' into main
Submarinee Jul 30, 2021
1d274e4
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 30, 2021
6061d42
modify the documentation for otlptrace exporter.
Submarinee Jul 30, 2021
c437e21
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 30, 2021
7ef6815
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 30, 2021
50cfeac
Update exporters/otlp/otlptrace/README.md
Submarinee Jul 30, 2021
1e4b69b
Update exporters/otlp/otlptrace/README.md
Submarinee Aug 19, 2021
5359244
Update exporters/otlp/otlptrace/README.md
Submarinee Aug 19, 2021
bf334b0
Update exporters/otlp/otlptrace/README.md
Submarinee Aug 19, 2021
6df0c51
Move example to otlptracehttp package
MrAlias Sep 2, 2021
1fb0f70
Unexport example functions
MrAlias Sep 2, 2021
aef81d7
Fix markdownlint errors
MrAlias Sep 2, 2021
7201c27
Specify payload types in README
MrAlias Sep 2, 2021
a0035bc
Merge branch 'main' into main
MrAlias Sep 2, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions exporters/otlp/otlptrace/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# OpenTelemetry-Go OTLP Span Exporter

Submarinee marked this conversation as resolved.
Show resolved Hide resolved
[![Go Reference](https://pkg.go.dev/badge/go.opentelemetry.io/otel/exporters/otlp/otlptrace.svg)](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlptrace)

[OpenTelemetry Protocol Exporter](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.5.0/specification/protocol/exporter.md) implementation.

## Installation

```
go get -u go.opentelemetry.io/otel/exporters/otlp/otlptrace
```
pellared marked this conversation as resolved.
Show resolved Hide resolved

## Examples

- [Exporter setup and examples](./otlptracehttp/example_test.go)
- [Full example sending telemetry to a local collector](../../../example/otel-collector)

## [`otlptrace`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlptrace)

The `otlptrace` package provides an exporter implementing the OTel span exporter interface.
This exporter is configured using a client satisfying the `otlptrace.Client` interface.
This client handles the transformation of data into wire format and the transmission of that data to the collector.

## [`otlptracegrpc`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc)

The `otlptracegrpc` package implements a client for the span exporter that sends trace telemetry data to the collector using gRPC with protobuf-encoded payloads.

## [`otlptracehttp`](https://pkg.go.dev/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp)

The `otlptracehttp` package implements a client for the span exporter that sends trace telemetry data to the collector using HTTP with protobuf-encoded payloads.
94 changes: 94 additions & 0 deletions exporters/otlp/otlptrace/otlptracehttp/example_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
// Copyright The OpenTelemetry Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package otlptracehttp_test

import (
"context"
"log"

"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
"go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace"
)

const (
instrumentationName = "github.com/instrumentron"
instrumentationVersion = "v0.1.0"
)

var (
tracer = otel.GetTracerProvider().Tracer(
instrumentationName,
trace.WithInstrumentationVersion(instrumentationVersion),
trace.WithSchemaURL(semconv.SchemaURL),
)
)

func add(ctx context.Context, x, y int64) int64 {
var span trace.Span
_, span = tracer.Start(ctx, "Addition")
defer span.End()

return x + y
}

func multiply(ctx context.Context, x, y int64) int64 {
var span trace.Span
_, span = tracer.Start(ctx, "Multiplication")
defer span.End()

return x * y
}

func newResource() *resource.Resource {
return resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceNameKey.String("otlptrace-example"),
semconv.ServiceVersionKey.String("0.0.1"),
)
}

func installExportPipeline(ctx context.Context) func() {
client := otlptracehttp.NewClient()
exporter, err := otlptrace.New(ctx, client)
if err != nil {
log.Fatalf("creating OTLP trace exporter: %v", err)
}

tracerProvider := sdktrace.NewTracerProvider(
sdktrace.WithBatcher(exporter),
sdktrace.WithResource(newResource()),
)
otel.SetTracerProvider(tracerProvider)

return func() {
if err := tracerProvider.Shutdown(ctx); err != nil {
log.Fatalf("stopping tracer provider: %v", err)
}
}
}

func Example() {
ctx := context.Background()
// Registers a tracer Provider globally.
cleanup := installExportPipeline(ctx)
defer cleanup()

log.Println("the answer is", add(ctx, multiply(ctx, multiply(ctx, 2, 2), 10), 2))
}
3 changes: 3 additions & 0 deletions exporters/otlp/otlptrace/otlptracehttp/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ go 1.15

require (
github.com/stretchr/testify v1.7.0
go.opentelemetry.io/otel v1.0.0-RC2
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.0.0-RC2
go.opentelemetry.io/otel/sdk v1.0.0-RC2
go.opentelemetry.io/otel/trace v1.0.0-RC2
go.opentelemetry.io/proto/otlp v0.9.0
google.golang.org/protobuf v1.27.1
)
Expand Down