-
Notifications
You must be signed in to change notification settings - Fork 3
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
Feature/instrument process node #1
Open
boxsterman
wants to merge
56
commits into
kamon-io:master
Choose a base branch
from
seibertec:feature/instrument_process_node
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 24 commits
Commits
Show all changes
56 commits
Select commit
Hold shift + click to select a range
77e3d4f
integrate with Kamon 2.0.0-RC
5207d59
Set version to 2.0.0-SNAPSHOT
2941659
Add current kafka record's key as tag to the span
499ea65
Add kafka's Scala sugar
50d7403
Add optional record.key() as tag to the span
779a031
Fix module name in stream's reference.conf
a77ff44
Add streaming test for context propagation
c1ebb00
WIP: add node tracing
cc1505a
Add consistent stream and node instrumentation
99b0bfb
Use default propagation, inprove test stability by increasing zk conn…
5b76e66
Cleanup code, remove println output
4bd2bfe
Adapt to 2.0 final
76cd874
update travis to use openjdk8 instead of oraclejdk8
f38e917
Update readme
75243a5
Avoid javac errors on unknown characters
8c1562e
Update kamon-sbt-umbrella plugin reference
493f4d0
Try different workaround for package.type undefined problem ...
71a4a29
Try again another workaround for package.type undefined problem ...
c0eda0f
Try again another workaround ... properly integrated
0c3685a
Try again another workaround ...
eef7611
Try again another workaround ...
8078100
Move to sbt 1.3.0
b9d59d5
Increase mem for sbt tests
19c18b8
Fix cross scala version build, bump scala version to 2.12.9
9e166d6
Add description to the module configuration
b8c3d95
Extract context serialization into a Scala class in order to hide the…
b6d7351
Simplify stream instrumentation by removing the Java-based Advisor an…
f2333a0
Introduce config for enable/disable stream topology node tracing
6710301
Add "Apache" to the module name in reference.conf
9814616
Add DOT file generator and add some more tests for slightly more comp…
f302d30
Upgrade Kafka libs to 2.3.0, adapt instrumentation, refactor client t…
e1d3318
Address PR feedback: Split client's Java advisors, fix (start) timing…
e6cea35
Address PR feedback: remove superfluous code
5e25ad6
Address PR feedback: use linked spans in not following
91ac200
Address PR feedback: add clientId (consumer/publisher) and groupId (c…
e637a87
Refactor configuration and introduce support for delayed spans
ef802a9
Refactor RecordProcessor (client poll instrumentation) for consistent…
ab27353
Fix single abstract message issue
e0b7281
Fix single abstract message issue - again, forgot about cross compila…
63cd34b
Fix single abstract message issue - again, forgot about cross compila…
c6ea37b
Add kafka.timestamp and kafka.timestampType as tags to kafka client s…
b10a825
Add test for new tags
1035c9c
Trigger build
1e88b87
Add proper test for new span tags timestamp and timestampType
94aa3e5
Add support for storing and accessing spans associated with consumer …
3a50957
Add proper context propagation for streams
751808e
Refactor package names to kamon.instrumentation.kafka.*
fc97b9a
Clean up convenience functions for extracting the context from Consum…
50c94c6
Trigger build
07ae1dd
Add configuration for include/exclude streams tracing based on applic…
c0d63a7
Improve tests with better expression of which spans are expected,
cd656f2
Provide proper current context when executing ProcessNode.process()
bc02e60
Refactor node instrumentation of streams to properly honor their life…
93590b7
Add proper exception logging for stream and node spans
3c87f2a
Add specific istrumentation for source and sink node to capture in/ou…
27ae452
Start tracing for JOIN operations - fix context propagation for store…
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
-J-XX:MaxMetaspaceSize=2048m | ||
-J-Xmx4096m | ||
-J-XX:+CMSClassUnloadingEnabled | ||
-J-XX:+UseConcMarkSweepGC |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,12 @@ | ||
language: scala | ||
sbt_args: -Djava.io.tmpdir=$TRAVIS_BUILD_DIR/tmp | ||
script: | ||
- sbt test | ||
- sbt +test | ||
scala: | ||
- 2.12.8 | ||
- 2.12.9 | ||
jdk: | ||
- oraclejdk8 | ||
- openjdk8 | ||
before_script: | ||
- mkdir $TRAVIS_BUILD_DIR/tmp | ||
- export SBT_OPTS="-Djava.io.tmpdir=$TRAVIS_BUILD_DIR/tmp" | ||
sudo: false | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any particular reason for not using the latest kafka clients/streams versions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Migrated to Kafka 2.3.0.
The signature of the instrumented method in the Kafka client has changed, how shall we address compatibility with older Kafka version (pre 2.3.0)? Shall I create a dedicated module depending on Kafka 2.0.0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@boxsterman you can use the kanela
ClassRefiner
in order to activate an instrumentation depending of some properties of the target class. Take a look:https://github.com/kamon-io/kamon-play/blob/master/kamon-play/src/main/scala/kamon/instrumentation/play/PlayServerInstrumentation.scala#L34-L58
and https://github.com/kamon-io/kanela/blob/master/agent/src/test/scala/kanela/agent/classloader/ClassloaderNameMatcherSpec.scala#L25
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we would keep it all in the kamon-kafka project and use such property-based instrumentation, wouldn't that cause issues with eviction of (older) Kafka libraries on the side of the users of such a kamon-kafka lib?