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

[Jaeger] Add otel consumer converting batches to Elastic APM events #3066

Merged
merged 5 commits into from
Dec 19, 2019

Conversation

simitt
Copy link
Contributor

@simitt simitt commented Dec 17, 2019

Add consumer converting incoming otel batches to Elastic APM format.
Add integration tests covering incoming gRPC requests being transformed to beat events.

partially implements #3307

This PR does not include error handling.

Add consumer converting incoming otel batches to Elastic APM format.
Add integration tests covering incoming gRPC requests being
transformed to beat events.

partially implements elastic#3307
@simitt simitt added the jaeger label Dec 17, 2019
@simitt simitt added this to the 7.6 milestone Dec 17, 2019
@simitt simitt requested a review from axw December 17, 2019 15:06
@codecov-io
Copy link

codecov-io commented Dec 17, 2019

Codecov Report

❗ No coverage uploaded for pull request base (jaeger@69b67c1). Click here to learn what that means.
The diff coverage is 92%.

@@            Coverage Diff            @@
##             jaeger    #3066   +/-   ##
=========================================
  Coverage          ?   79.27%           
=========================================
  Files             ?      101           
  Lines             ?     5279           
  Branches          ?        0           
=========================================
  Hits              ?     4185           
  Misses            ?     1094           
  Partials          ?        0
Impacted Files Coverage Δ
beater/api/jaeger/grpc.go 82.14% <ø> (ø)
beater/http.go 67.92% <ø> (ø)
beater/server.go 70.83% <ø> (ø)
model/metadata/process.go 100% <ø> (ø)
beater/jaeger/grpc.go 82.75% <ø> (ø)
model/transaction/event.go 95.23% <100%> (ø)
model/span/event.go 86.19% <100%> (ø)
processor/otel/consumer.go 91.79% <91.58%> (ø)

beater/api/jaeger/testdata/batch_1.approved.json Outdated Show resolved Hide resolved
beater/api/jaeger/testdata/batch_1.approved.json Outdated Show resolved Hide resolved
beater/api/jaeger/testdata/batch_1.approved.json Outdated Show resolved Hide resolved
beater/api/jaeger/grpc_approval_test.go Show resolved Hide resolved
processor/otel/consumer.go Outdated Show resolved Hide resolved
processor/otel/consumer.go Outdated Show resolved Hide resolved
processor/otel/consumer.go Outdated Show resolved Hide resolved
processor/otel/consumer.go Outdated Show resolved Hide resolved
processor/otel/consumer.go Outdated Show resolved Hide resolved
processor/otel/consumer.go Outdated Show resolved Hide resolved
@simitt
Copy link
Contributor Author

simitt commented Dec 18, 2019

@axw this is ready for another review.

Copy link
Member

@axw axw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

md.Service.Agent.Version = &jaegerVersion
}
agentName := agentNameJaeger
if md.Service.Language.Name != nil {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The OTel Jaeger translator doesn't set td.Node.Language, so I think we should do that ourselves while parsing the version above. Then we can upstream the code. WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM, will add.

@simitt simitt merged commit 8398f8a into elastic:jaeger Dec 19, 2019
axw added a commit that referenced this pull request Jan 9, 2020
* Integrate Jaeger gRPC collector (#2976)

Add support for Jaeger gRPC Trace Intake Collector. The gRPC endpoint collects monitoring metrics and supports TLS communication, by reusing the `apm-server.ssl.*` configuration. By default the gRPC endpoint is disabled.

closes #2962 

Co-Authored-By: Andrew Wilkins <[email protected]>

* [Jaeger] Add otel consumer converting batches to Elastic APM events (#3066)

Add consumer converting incoming otel batches to Elastic APM format.
Add integration tests covering incoming gRPC requests being transformed to beat events.

partially implements #3307

* Jaeger http thrift (#3081)

Add an HTTP handler, muxer, and server, in beater/jaeger for accepting Thrift-encoded trace data over HTTP. Refactor beater/jaeger.GRPCServer into Server, which now encapsulates both gRPC and HTTP servers.

Move beater/api/jaeger code into beater/jaeger, which is the only user of GRPCCollector. If the beater/jaeger code grows significantly, we might consider having subpackages like beater/jaeger/grpc, beater/jaeger/http, etc.

* [jaeger] Convert Timeevents to errors (#3085)

* [jaeger] Convert Timeevents to errors

Parse Timeevents from Jaeger spans and convert to elastic error events
if they describe an error.

Fixes #3007

* Add experimental flag to Jaeger integration (#3121)

* tests/system: system test for Jaeger Thrift/HTTP (#3114)

* tests/system: system test for Jaeger Thrift/HTTP

* tests/system: system test for Jaeger gRPC

* processor/otel: update approvals

Co-authored-by: Silvia Mitter <[email protected]>
simitt added a commit to simitt/apm-server that referenced this pull request Jan 14, 2020
…lastic#3066)

Add consumer converting incoming otel batches to Elastic APM format.
Add integration tests covering incoming gRPC requests being transformed to beat events.

partially implements elastic#3307
simitt added a commit to simitt/apm-server that referenced this pull request Jan 14, 2020
…lastic#3066)

Add consumer converting incoming otel batches to Elastic APM format.
Add integration tests covering incoming gRPC requests being transformed to beat events.

partially implements elastic#3307
simitt added a commit that referenced this pull request Jan 14, 2020
* Integrate Jaeger gRPC collector (#2976)

Add support for Jaeger gRPC Trace Intake Collector. The gRPC endpoint collects monitoring metrics and supports TLS communication, by reusing the `apm-server.ssl.*` configuration. By default the gRPC endpoint is disabled.

closes #2962

Co-Authored-By: Andrew Wilkins <[email protected]>

* [Jaeger] Add otel consumer converting batches to Elastic APM events (#3066)

Add consumer converting incoming otel batches to Elastic APM format.
Add integration tests covering incoming gRPC requests being transformed to beat events.

partially implements #3307

* Jaeger http thrift (#3081)

Add an HTTP handler, muxer, and server, in beater/jaeger for accepting Thrift-encoded trace data over HTTP. Refactor beater/jaeger.GRPCServer into Server, which now encapsulates both gRPC and HTTP servers.

Move beater/api/jaeger code into beater/jaeger, which is the only user of GRPCCollector. If the beater/jaeger code grows significantly, we might consider having subpackages like beater/jaeger/grpc, beater/jaeger/http, etc.

* [jaeger] Convert Timeevents to errors (#3085)

* [jaeger] Convert Timeevents to errors

Parse Timeevents from Jaeger spans and convert to elastic error events
if they describe an error.

Fixes #3007

* Add experimental flag to Jaeger integration (#3121)

* tests/system: system test for Jaeger Thrift/HTTP (#3114)

* tests/system: system test for Jaeger Thrift/HTTP

* tests/system: system test for Jaeger gRPC

Co-authored-by: Andrew Wilkins <[email protected]>
@simitt simitt deleted the 3007-jaeger-consumer-impl branch February 10, 2020 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants