Comments (15)
This is a typical request. Having defaultTags
like aws.instance
is a very common use case so +1 on this.
from kong-plugin-zipkin.
I agree, can we please get custom tags. We have multiple k8s clusters, it would be nice to have that information in the span
from kong-plugin-zipkin.
I was going to file a new issue, but I think this one captures what I'm looking for. I'd like to be able to configure a map of field/tag/label keys and values in my KongPlugin object for the Zipkin plugin, and have Kong export those values as part of every top-level trace span. It would be nice if they were included in every span within the trace, but I'd settle for top-level only if need be.
Is anyone working on this now?
from kong-plugin-zipkin.
Not that I know @seh. Up for a PR?
from kong-plugin-zipkin.
I can read Lua. Writing some may be possible. It would require a lot of patient coaching during review.
The question is whether the maintainers are willing to accept such a feature, should it arrive as a patch. We'd have to settle some design points, such as:
- Wnhat happens if the configuration nominates a statically defined value for a tag that's normally exported by the plugin (e.g. "http.method").
- Would we try to catch these when validating the configuration?
- Would we underlay the static tags beneath the normal ones, so that we'd clobber the static tags should such a collision arise?
- Are there syntactic restrictions on the tag names and values?
from kong-plugin-zipkin.
Worker processes do not receive environment variables that you pass to Kong at startup.
See: https://nginx.org/en/docs/ngx_core_module.html#env
Is configuring tags via the plugin config
not an option here? (I'm not a zipking/tracing superuser)
from kong-plugin-zipkin.
For my purposes, reading environment variables could be convenient, but it's not essential. I'd settle for static plugin configuration. It's more about what you're allowed to configure there.
from kong-plugin-zipkin.
@kikito can probably help drive the conversation here.
My 2 cents would be that static tags have lower precedence over the dynamic ones that are injected by the plugins. We shouldn't do any validation because such validation can get out of date as the plugins code receives more love. The validation on the tag key and value should be same as what is accepted in the tracing standards. If standards are vague, we should start narrow and small.
from kong-plugin-zipkin.
Can you clarify what "narrow and small" means in this context? Is that "small" as in few restrictions, being liberal in what we'll tolerate, or "small" as in only tolerating a few things with the possibility of relaxing the restrictions later?
from kong-plugin-zipkin.
or "small" as in only tolerating a few things with the possibility of relaxing the restrictions later?
This one.
from kong-plugin-zipkin.
Just FYI I am going to start working on this.
What happens if the configuration nominates a statically defined value for a tag that's normally exported by the plugin (e.g. "http.method").
The normally exported plugin by the tag will "win". This is a purely self-serving move, since it would be easier for me to program it this way.
Would we try to catch these when validating the configuration?
It is actually not very difficult to do this. At least, a simple version of it is. Might add.
Would we underlay the static tags beneath the normal ones, so that we'd clobber the static tags should such a collision arise?
Static tags will be clobbered.
Are there syntactic restrictions on the tag names and values?
Not really. The config might live in a JSON/YAML file so that puts certain restrictions on the values though.
from kong-plugin-zipkin.
That all sounds good, @kikito. I look forward to seeing your patch, learning a little more Lua through review.
from kong-plugin-zipkin.
from kong-plugin-zipkin.
Ok the PR is ready in #84, and the tests are green. Will leave it open for a couple days in case someone wants to give it a look before merging it.
from kong-plugin-zipkin.
Implemented in #84, will be released in the next version of the plugin.
from kong-plugin-zipkin.
Related Issues (20)
- Exception in Annotate Assert HOT 6
- Global sample ratio overrides route-specific HOT 3
- Allow customize localEndpoint.serviceName HOT 5
- Loud logging at the moment. HOT 2
- A question about processed time of a request in Kong HOT 1
- Configurable ServiceName HOT 4
- Can zipkin collect data through kafka? HOT 6
- Why does zipkin lose so much data with high concurrency? HOT 3
- Plugin don't work when apply to Services or Routes HOT 2
- Numerous data problems HOT 1
- Connections in dependency graph, should it be like this? HOT 2
- Consider using `localEndpoint` instead of `peer.*` tags HOT 6
- Honor x-b3 request headers HOT 1
- Feature Request: implement W3C TraceContext traceparent header extract/inject HOT 18
- Assumption KONG_ACCESS_START will always be set in tx context. HOT 1
- Which plugin version for Kong 1.1.2? HOT 1
- krs, krf, kaf, kas, khs, kbf, kbs, khf HOT 1
- Kong doesn't sends traces to zipkin HOT 1
- Incorrect timestamps on Kong phase start/end logs in Jaeger UI HOT 5
- Feature request: Set dynamic tags through request headers HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kong-plugin-zipkin.