-
-
Notifications
You must be signed in to change notification settings - Fork 284
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
WIP : OpenTracing support #406
Conversation
This is amazing! :-) Does it also work locally on a single node, just to visualize actor interaction. I also think, if we do this right, it could become extremely valuable for the cluster support. |
It should, will confirm asap. |
should we merge and work on details in another pr? |
I have an nice example incomming. and a few more thoughts. Can you wait until tomorrow ? |
I'm not satisfied with the result, i'll try with decorators. |
Well I tried, but seems Props.ContextDecocator is not used, so I tried to implement the used ... and it's not that easy ! |
I think we need to commit on how decorators should work, should they be chainable like middleware, is it enough to just have a single wrapper over the actor context? |
Context Decorators are working now: https://github.com/AsynkronIT/protoactor-dotnet/blob/dev/examples/ContextDecorators/Program.cs |
Will fix unit tests when api is more stable, now it's broken and it's a good reminder to udpate the tests. |
I didn't quite get this, is there anything I can/should do? |
No i meant when the WithOpenTracing() stuffs are ok. |
No I think it all looks great,
|
Yes, of course, will do soon. |
I've merged it all in, but we need to fix those two failing tests for tracing |
Yep, i'm on it here : https://github.com/jrouaix/protoactor-dotnet/tree/opentracing |
* Update build.cake * implement stopping when max number of restarts exceeds allowed number in a period of time * Removed _applySnapshot callback after persisting a snapshot. * address issue (TryDequeue return True but get null result) alexandrnikitin/MPMCQueue.NET#2 * No need to count messages * Fix 2 csproj files causing Visual Studio for Mac not load bug. * fix: utilize EventStream.Instance for DI example (#387) * added ActorPropsRegistry.RegisterProps(Type, Func<Props, Props> (#378) * Implement Forward. * Fix csprojs. * Reverse back RavenDB. * Add ContextState.Stopped. * Allow InvokeSystemMessageAsync in any state. * Temp fix appveyor.yml cake version. * . * Send EndpointWatcher/EndpointWriter Stop message in Actor. * Report error if receive user message after Actor already stooped. * Fix test codes. * Add StopAsync/Poison/PoisonAsync * . * Update dependencies * Fix test codes. * Update dependency for example/RemoteActivate. * renamed RootContext => ActorClient. To be constitent with the class name. * ActorClient.RequestAsync and example * Moved Tell & Request from IContext to ISenderContext * Mutable MessageEnvelope * ISenderContext Message mutable * static readonly mutable EmptyHeaders was really dangerous. Made it a new instance for each call. * middlewares messages manipulation example * Big Breaking Change * tell -> send * move send to extension * revert mutating messages * copyrights * bugfix in actorcontext * RootContext * removed pid request * cleanup router tests * clean up tests * cleanup * more clean up * even more * immutable message headers * better receive middleware * looping spawn benchmark * use props in actorcontext * remove 1.5 * globaljson * bugfix in rootcontext * move Actor.Spawn to Context.Spawn * Move props creating funcs from Actor to Props * Code cleanup * WIP : Single remote instance cluster- do not merge (#408) * SingleRemoteInstanceProvider draft * Should work but don't :-| * working SingleRemoteInstanceProvider * trimed csproj * Docs * formatting * context proxy * decorator context * decorators works * root context decorator * fix IContext * RootContext.With* * WIP : OpenTracing support - do not merge (#406) * OpenTracing first blood * WithOpenTracingSenderTest * oups * OpenTracingReceiverMiddlewareTests * jaeger working now ! (should I have read the manual sooner !) * log messages * ProtoTags targetPID & senderPID * OpenTracing complex interactions example * trying to play with decorator * OpenTracing improvements with decorators * fix non compiling tests * remove globaljson * Opentracing improvements (#412) * OpenTracing first blood * WithOpenTracingSenderTest * oups * OpenTracingReceiverMiddlewareTests * jaeger working now ! (should I have read the manual sooner !) * log messages * ProtoTags targetPID & senderPID * OpenTracing complex interactions example * trying to play with decorator * OpenTracing improvements with decorators * OpenTracing improvements * moved Proto.OpenTracing.Tests to "test" solution folder * tried to have OpenTracing receive in ContextDecorator but failed * OpenTracing back on tracks with middlewares * unit tests unbroked and improved * ensure decorator.Receive is called * fix context decorator for actors without receive middleware * finally receive decorator is working fine, but only triggered when at least one receive middleware (#414) * Chainable context decorators (#417) * Life cycle events : write deadletters, just in case * OpenTracing commented code out * Chainable context decorators * Fixed issue with namespaces with deeper nesting (#419) * Bump to 0.2.0 * Copy GuardianStrategy when copy Props. * targeting netstandard2.0 and net452
* Release 0.2.0 (#421) * Update build.cake * implement stopping when max number of restarts exceeds allowed number in a period of time * Removed _applySnapshot callback after persisting a snapshot. * address issue (TryDequeue return True but get null result) alexandrnikitin/MPMCQueue.NET#2 * No need to count messages * Fix 2 csproj files causing Visual Studio for Mac not load bug. * fix: utilize EventStream.Instance for DI example (#387) * added ActorPropsRegistry.RegisterProps(Type, Func<Props, Props> (#378) * Implement Forward. * Fix csprojs. * Reverse back RavenDB. * Add ContextState.Stopped. * Allow InvokeSystemMessageAsync in any state. * Temp fix appveyor.yml cake version. * . * Send EndpointWatcher/EndpointWriter Stop message in Actor. * Report error if receive user message after Actor already stooped. * Fix test codes. * Add StopAsync/Poison/PoisonAsync * . * Update dependencies * Fix test codes. * Update dependency for example/RemoteActivate. * renamed RootContext => ActorClient. To be constitent with the class name. * ActorClient.RequestAsync and example * Moved Tell & Request from IContext to ISenderContext * Mutable MessageEnvelope * ISenderContext Message mutable * static readonly mutable EmptyHeaders was really dangerous. Made it a new instance for each call. * middlewares messages manipulation example * Big Breaking Change * tell -> send * move send to extension * revert mutating messages * copyrights * bugfix in actorcontext * RootContext * removed pid request * cleanup router tests * clean up tests * cleanup * more clean up * even more * immutable message headers * better receive middleware * looping spawn benchmark * use props in actorcontext * remove 1.5 * globaljson * bugfix in rootcontext * move Actor.Spawn to Context.Spawn * Move props creating funcs from Actor to Props * Code cleanup * WIP : Single remote instance cluster- do not merge (#408) * SingleRemoteInstanceProvider draft * Should work but don't :-| * working SingleRemoteInstanceProvider * trimed csproj * Docs * formatting * context proxy * decorator context * decorators works * root context decorator * fix IContext * RootContext.With* * WIP : OpenTracing support - do not merge (#406) * OpenTracing first blood * WithOpenTracingSenderTest * oups * OpenTracingReceiverMiddlewareTests * jaeger working now ! (should I have read the manual sooner !) * log messages * ProtoTags targetPID & senderPID * OpenTracing complex interactions example * trying to play with decorator * OpenTracing improvements with decorators * fix non compiling tests * remove globaljson * Opentracing improvements (#412) * OpenTracing first blood * WithOpenTracingSenderTest * oups * OpenTracingReceiverMiddlewareTests * jaeger working now ! (should I have read the manual sooner !) * log messages * ProtoTags targetPID & senderPID * OpenTracing complex interactions example * trying to play with decorator * OpenTracing improvements with decorators * OpenTracing improvements * moved Proto.OpenTracing.Tests to "test" solution folder * tried to have OpenTracing receive in ContextDecorator but failed * OpenTracing back on tracks with middlewares * unit tests unbroked and improved * ensure decorator.Receive is called * fix context decorator for actors without receive middleware * finally receive decorator is working fine, but only triggered when at least one receive middleware (#414) * Chainable context decorators (#417) * Life cycle events : write deadletters, just in case * OpenTracing commented code out * Chainable context decorators * Fixed issue with namespaces with deeper nesting (#419) * Bump to 0.2.0 * Copy GuardianStrategy when copy Props. * targeting netstandard2.0 and net452 * Upgrading code, packages, a bit of cleanup * Merge, cleaning up mongo and logs * Update Appveyor image * Fixing the remote manager * Fix target framework * Fixes #403 (I hope) Co-authored-by: Roger Johansson <rogeralsing@gmail.com> Co-authored-by: Christian Palmstierna <christian.palmstierna@gmail.com>
Chat example is instrumented with jager tracing.
You can start a jaeger instance with docker : https://www.jaegertracing.io/docs/getting-started/