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

tests/system: system test for Jaeger Thrift/HTTP #3114

Merged
merged 4 commits into from
Jan 9, 2020

Conversation

axw
Copy link
Member

@axw axw commented Jan 8, 2020

Add a system test that exercises the Jaeger HTTP endpoint. Sends a pre-recorded (Thrift-encoded) payload using requests, similar to what we do for the intake API.

Closes #3010

@axw axw requested a review from simitt January 8, 2020 03:21
@axw
Copy link
Member Author

axw commented Jan 8, 2020

Test data generated with this:

package main

import (
        opentracing "github.com/opentracing/opentracing-go"

        jaegercfg "github.com/uber/jaeger-client-go/config"
        jaegerlog "github.com/uber/jaeger-client-go/log"
)

func main() {
        cfg, err := jaegercfg.FromEnv()
        if err != nil {
                panic(err)
        }
        cfg.Sampler = &jaegercfg.SamplerConfig{Type: "const", Param: 1}

        logger := jaegerlog.StdLogger
        closer, err := cfg.InitGlobalTracer("test_service", jaegercfg.Logger(logger))
        if err != nil {
                panic(err)
        }
        defer closer.Close()

        tracer := opentracing.GlobalTracer()
        tracer.StartSpan("test_span").Finish()
}

@codecov-io
Copy link

codecov-io commented Jan 8, 2020

Codecov Report

❗ No coverage uploaded for pull request base (jaeger@ec8a752). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             jaeger    #3114   +/-   ##
=========================================
  Coverage          ?   79.67%           
=========================================
  Files             ?      104           
  Lines             ?     5486           
  Branches          ?        0           
=========================================
  Hits              ?     4371           
  Misses            ?     1115           
  Partials          ?        0

@axw
Copy link
Member Author

axw commented Jan 8, 2020

jenkins run the tests please

Copy link
Contributor

@simitt simitt left a comment

Choose a reason for hiding this comment

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

Nice and straight forward way of testing this.

tests/system/apmserver.py Outdated Show resolved Hide resolved
tests/system/test_integration.py Outdated Show resolved Hide resolved
tests/system/test_integration.py Outdated Show resolved Hide resolved
@simitt simitt mentioned this pull request Jan 8, 2020
 - Split Jaeger tests out of test_integration
 - Use a non-default port. We now use a dynamic port
@axw axw requested a review from simitt January 8, 2020 09:49
@axw
Copy link
Member Author

axw commented Jan 8, 2020

jenkins run the tests please

1 similar comment
@axw
Copy link
Member Author

axw commented Jan 8, 2020

jenkins run the tests please

@axw axw merged commit 4e5ca1a into elastic:jaeger Jan 9, 2020
@axw axw deleted the jaeger-http-system-test branch January 9, 2020 00:56
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 pushed a commit to simitt/apm-server that referenced this pull request Jan 14, 2020
* tests/system: system test for Jaeger Thrift/HTTP
simitt pushed a commit to simitt/apm-server that referenced this pull request Jan 14, 2020
* tests/system: system test for Jaeger Thrift/HTTP
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants