Skip to content

beater: run gmuxed gRPC server by default#4618

Merged
axw merged 10 commits intoelastic:masterfrom
axw:beater-gmux
Jan 20, 2021
Merged

beater: run gmuxed gRPC server by default#4618
axw merged 10 commits intoelastic:masterfrom
axw:beater-gmux

Conversation

@axw
Copy link
Copy Markdown
Member

@axw axw commented Jan 13, 2021

Motivation/summary

Use gmux to run a gRPC server on the same port as the Elastic APM HTTP server, and register the Jaeger services by default.

When auth is enabled, it is necessary to configure Jaeger to send an agent tag called "elastic-apm-auth".
This cannot be changed.

Checklist

  • Update CHANGELOG.asciidoc
    - [ ] Documentation has been updated Let's do this in a followup, after we have a discussion about the UX around auth tags.

How to test these changes

  • Run APM Server with default config
  • Run jaeger-agent with --reporter.grpc.host-port=localhost:8200
  • Exercise an app instrumented with the Jaeger client
  • Check that Jaeger spans are indexed

Related issues

Closes #3984

@axw axw changed the title Beater gmux beater: run gmuxed gRPC server by default Jan 13, 2021
@ghost
Copy link
Copy Markdown

ghost commented Jan 13, 2021

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Build Cause: Pull request #4618 updated

    • Start Time: 2021-01-20T09:37:15.455+0000
  • Duration: 53 min 9 sec

  • Commit: 31f971d

Test stats 🧪

Test Results
Failed 0
Passed 4610
Skipped 124
Total 4734

Steps errors 3

Expand to view the steps failures

Run Window tests
  • Took 9 min 18 sec . View more details on here
Compress
  • Took 0 min 0 sec . View more details on here
  • Description: tar --exclude=coverage-files.tgz -czf coverage-files.tgz coverage
Compress
  • Took 0 min 0 sec . View more details on here
  • Description: tar --exclude=system-tests-linux-files.tgz -czf system-tests-linux-files.tgz system-tests

Copy link
Copy Markdown
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.

Looks great! Only left nit comments.

axw added 5 commits January 14, 2021 10:40
Use gmux to run a gRPC server on the same port
as the Elastic APM HTTP server, and register the
Jaeger services by default.

When auth is enabled, it is necessary to configure
Jaeger to send an agent tag called "elastic-apm-auth".
This cannot be changed.
@codecov-io
Copy link
Copy Markdown

codecov-io commented Jan 14, 2021

Codecov Report

Merging #4618 (9cd89d3) into master (3c61870) will decrease coverage by 0.01%.
The diff coverage is 78.72%.

@@            Coverage Diff             @@
##           master    #4618      +/-   ##
==========================================
- Coverage   75.77%   75.75%   -0.02%     
==========================================
  Files         162      162              
  Lines        9811     9842      +31     
==========================================
+ Hits         7434     7456      +22     
- Misses       2377     2386       +9     
Impacted Files Coverage Δ
beater/http.go 66.66% <40.00%> (-1.67%) ⬇️
beater/server.go 66.10% <72.00%> (+0.31%) ⬆️
beater/jaeger/server.go 81.81% <100.00%> (+1.81%) ⬆️
...ack/apm-server/aggregation/txmetrics/aggregator.go 93.36% <0.00%> (ø)

@axw axw marked this pull request as ready for review January 14, 2021 05:28
@axw axw requested a review from simitt January 14, 2021 05:28
@axw
Copy link
Copy Markdown
Member Author

axw commented Jan 14, 2021

Thanks for the review @simitt! I've addressed your comments, and this PR is now ready for final review.

@axw axw requested a review from simitt January 19, 2021 00:14
@axw axw merged commit 3bdd164 into elastic:master Jan 20, 2021
@axw axw deleted the beater-gmux branch January 20, 2021 11:06
axw added a commit to axw/apm-server that referenced this pull request Feb 18, 2021
* beater: run gmuxed gRPC server by default

Use gmux to run a gRPC server on the same port
as the Elastic APM HTTP server, and register the
Jaeger services by default.

When auth is enabled, it is necessary to configure
Jaeger to send an agent tag called "elastic-apm-auth".
This cannot be changed.

* systemtest/apmservertest: add TLS support

Self-signed certificate and key copied from
https://github.com/golang/go/blob/master/src/net/http/internal/testcert.go

* systemtest: add test for muxed Jaeger+TLS

* beater/jaeger: fix comment

* beater/jager: add deprecation notice

* Add changelog entry

* jaeger config will be removed in 8.0

* Add "Deprecated" changelog entry
# Conflicts:
#	NOTICE.txt
#	changelogs/head.asciidoc
axw added a commit to axw/apm-server that referenced this pull request Feb 18, 2021
* beater: run gmuxed gRPC server by default

Use gmux to run a gRPC server on the same port
as the Elastic APM HTTP server, and register the
Jaeger services by default.

When auth is enabled, it is necessary to configure
Jaeger to send an agent tag called "elastic-apm-auth".
This cannot be changed.

* systemtest/apmservertest: add TLS support

Self-signed certificate and key copied from
https://github.com/golang/go/blob/master/src/net/http/internal/testcert.go

* systemtest: add test for muxed Jaeger+TLS

* beater/jaeger: fix comment

* beater/jager: add deprecation notice

* Add changelog entry

* jaeger config will be removed in 8.0

* Add "Deprecated" changelog entry
# Conflicts:
#	NOTICE.txt
#	changelogs/head.asciidoc
axw added a commit that referenced this pull request Feb 18, 2021
[7.x]  beater: run gmuxed gRPC server by default (#4618)
@jalvz
Copy link
Copy Markdown
Contributor

jalvz commented Feb 23, 2021

Tested with jaeger-agent --reporter.grpc.host-port=localhost:8200 and a dummy jaeger app. Traces are shown in Kibana like our own!

@jalvz jalvz self-assigned this Feb 23, 2021
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.

Investigate serving Elastic APM and Jaeger inputs on the same port

4 participants