zalando / skipper

An HTTP router and reverse proxy for service composition, including use cases like Kubernetes Ingress
https://opensource.zalando.com/skipper/
Other
3.09k stars 350 forks source link

Add Custom Opentracing plugin #1048

Open Shareed2k opened 5 years ago

Shareed2k commented 5 years ago

Hi i'm using skipper as embeddable library, so it will be cool to add custom opentracing and all features plugins thought options to skipper... the idea here is use skipper like envoy, i have additional service lats call it "control plane", it have ui to let support team create rate limit, cors and auth, using expression rules, in skipper i have one fat plugin and separate logic to few little plugins. Fat plugin have redis caching, if cache is missing it talking to control plan to get new cache with grpc...

szuecs commented 5 years ago

Hi @Shareed2k , I am not fully getting what is missing. Do you want to have a PluginOptions or maybe better TracingOptions in this case?

Feel also free to add a PR to add a tracer in https://github.com/zalando/skipper/tree/master/tracing/tracers.

Shareed2k commented 5 years ago

for now if Im using skipper as library, I can't pass opentracing custom plugin troughs options to skipper.run() like custom filter plugins.

On Tue, May 7, 2019, 16:32 Sandor Szücs notifications@github.com wrote:

Hi @Shareed2k https://github.com/Shareed2k , I am not fully getting what is missing. Do you want to have a PluginOptions or maybe better TracingOptions in this case?

Feel also free to add a PR to add a tracer in https://github.com/zalando/skipper/tree/master/tracing/tracers.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zalando/skipper/issues/1048#issuecomment-490080827, or mute the thread https://github.com/notifications/unsubscribe-auth/AAMWZ775HHQVTOCMB42GNOTPUGAF5ANCNFSM4HLH5ZSQ .

Shareed2k commented 5 years ago

Also is I don't have actions to manipulate on some parts in proxy from my project as embadable library. All logic is encapsulated inside the skipper

szuecs commented 5 years ago

@Shareed2k for the proxy, you can only pass the ProxyOptions, yes. The question is what you need to have changed to make your requirements work. I am also thinking for a while now about having client connection pools by route possible (maybe per route configurable timeouts f.e.) and have some integrated mTLS settings passed to these via a route configuration.

For the opentracing plugins you are right, we pulled all the tracing plugins into the source tree and you have to implement a package that is already owned (private) by skipper. Feel free to create a PR to add you opentracing provider of choice to the tracers.