Phobos
Enterprise Application Monitoring and Management for Akka.NET OSS
Published by Petabridge
  • last updated 1 day(s) ago
  • 740 daily downloads
  • 1917347 total downloads
  • Latest version: 2.8.5

Phobos.Actor.Remote 2.0.0-beta1

Akka.Remote support for Phobos Enterprise framework.

Install-Package Phobos.Actor.Remote -Version 2.0.0-beta1
dotnet add package Phobos.Actor.Remote --version 2.0.0-beta1
<PackageReference Include="Phobos.Actor.Remote" Version="2.0.0-beta1"/>
paket add Phobos.Actor.Remote --version 2.0.0-beta1

Release Notes

MAJOR RELEASE OF PHOBOS** In Phobos 2.0 we have migrated all of our tracing and monitoring capabilities to use [OpenTelemetry](https://opentelemetry.io/). As we mentioned in our recent blog post about Phobos 2.0 and its relationship with OpenTelemetry, we did this for the following reasons: OpenTelemetry is now the official APM solution for the entire .NET platform, including other popular frameworks such as ASP.NET and Entity Framework; All major APM vendors and OSS project such as Prometheus, Jaeger, DataDog, AWS, GCP, Azure, Elastic, and so on are all committed to supporting OpenTelemetry going forward and they implement their own first-party exporters that transmit data to those platforms; The performance of the `OpenTelemetry.Trace` and `OpenTelemetry.Metrics` implementations, which Phobos uses, are identical no matter which combination of exporters you adopt; and OpenTelemetry is much more decoupled and extensible than any of the previous solutions in market. We have replaced all of our OpenTracing and App.Metrics dependencies with 2.x going forward. Installation and Configuration** To use Phobos 2.0.0-beta* in your solution, all you need to do is: 1. Install [the appropriate `Phobos.Actor.*` package](https://phobos.petabridge.com/articles/setup/index.html#nuget-packages) into your application using the 2.0.0-beta* version; 2. Install the appropriate [`OpenTelemetry.Exporter.*` packages](https://www.nuget.org/packages?q=OpenTelemetry.Exporter) you want to use in combination with your preferred APM tools; and 3. Configure your `IServiceCollection` with the following (adjust as needed): ```csharp // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { // Prometheus exporter won't work without this services.AddControllers(); var resource = ResourceBuilder.CreateDefault() .AddService(Assembly.GetEntryAssembly().GetName().Name, serviceInstanceId: $"{Dns.GetHostName()}"); // enables OpenTelemetry for ASP.NET / .NET Core services.AddOpenTelemetryTracing(builder => { builder .SetResourceBuilder(resource) .AddPhobosInstrumentation() .AddSource("Petabridge.Phobos.Web") .AddHttpClientInstrumentation() .AddAspNetCoreInstrumentation() .AddJaegerExporter(opt => { opt.AgentHost = Environment.GetEnvironmentVariable(JaegerAgentHostEnvironmentVar); }); }); services.AddOpenTelemetryMetrics(builder => { builder .SetResourceBuilder(resource) .AddPhobosInstrumentation() .AddHttpClientInstrumentation() .AddAspNetCoreInstrumentation() .AddPrometheusExporter(opt => { }); }); // sets up Akka.NET ConfigureAkka(services); } ``` The `.AddPhobosInstrumentation()` line will ensure that OTel picks up all of the signals produced by Phobos - and you need to call this line for *both* metrics and tracing! Finally, you need to configure your `ActorSystem` to use Phobos and to leverage the `TracerProvider` and `MeterProvider`s from OpenTelemetry: ```csharp public static void ConfigureAkka(IServiceCollection services) { services.AddSingleton(sp => { var metrics = sp.GetRequiredService<MeterProvider>(); var tracer = sp.GetRequiredService<TracerProvider>(); var config = ConfigurationFactory.ParseString(File.ReadAllText("app.conf")) .BootstrapFromDocker() .UseSerilog(); var phobosSetup = PhobosSetup.Create(new PhobosConfigBuilder() .WithMetrics(m => m.SetMetricsRoot(metrics)) // binds Phobos to same IMetricsRoot as ASP.NET Core .WithTracing(t => t.SetTracer(tracer))) // binds Phobos to same tracer as ASP.NET Core .WithSetup(BootstrapSetup.Create() .WithConfig(config) // passes in the HOCON for Akka.NET to the ActorSystem .WithActorRefProvider(PhobosProviderSelection .Cluster)); // last line activates Phobos inside Akka.NET var sys = ActorSystem.Create("ClusterSys", phobosSetup); // create actor "container" and bind it to DI, so it can be used by ASP.NET Core return new AkkaActors(sys); }); // this will manage Akka.NET lifecycle services.AddHostedService<AkkaService>(); } ``` This is fundamentally not all that different from how Phobos 1.x works. We will update our official documentation and website with more Phobos 2.0-specific instructions as our releases mature, but for the time being please don't hesitate to submit an issue on the [Phobos Issue Tracker](https://github.com/petabridge/phobos-issues) if you run into trouble! Phobos 1.x Support Lifetime** Per our recent announcement, we will continue to support Phobos 1.x and 2.x concurrently. Phobos 1.x will exit support on December 31st, 2023.

Dependencies

.NETStandard

Versions

Version
Downloads
Last Updated
5
1 day(s) ago
1581
47 day(s) ago
4428
94 day(s) ago
2288
128 day(s) ago
684
129 day(s) ago
1429
136 day(s) ago
823
143 day(s) ago
1251
162 day(s) ago
192
169 day(s) ago
1216
177 day(s) ago
56527
338 day(s) ago
784
348 day(s) ago
647
354 day(s) ago
16461
437 day(s) ago
9362
473 day(s) ago
2559
507 day(s) ago
642
542 day(s) ago
5977
549 day(s) ago
174
597 day(s) ago
3960
620 day(s) ago
11560
680 day(s) ago
493
683 day(s) ago
8362
738 day(s) ago
5062
764 day(s) ago
966
767 day(s) ago
4371
767 day(s) ago
90
772 day(s) ago
1869
821 day(s) ago
1
822 day(s) ago
1001
866 day(s) ago
254
954 day(s) ago
141
1027 day(s) ago
59279
1086 day(s) ago
121
1090 day(s) ago
89
1094 day(s) ago
101
1101 day(s) ago
12
1115 day(s) ago
4240
1138 day(s) ago
194
1144 day(s) ago
67
1145 day(s) ago
13543
1145 day(s) ago
52
1145 day(s) ago
436
1171 day(s) ago
1
1171 day(s) ago
12203
1180 day(s) ago
453
1214 day(s) ago
11
1215 day(s) ago
2049
1215 day(s) ago
98
1221 day(s) ago
99
1228 day(s) ago
7005
1244 day(s) ago
490
1257 day(s) ago
543
1268 day(s) ago
7176
1289 day(s) ago
1136
1326 day(s) ago
751
1328 day(s) ago
3295
1361 day(s) ago
2365
1382 day(s) ago
728
1390 day(s) ago
2015
1444 day(s) ago
1504
1460 day(s) ago
292
1466 day(s) ago
3455
1486 day(s) ago
5845
1530 day(s) ago
11100
1587 day(s) ago
152
1591 day(s) ago
134
1591 day(s) ago
134
1591 day(s) ago
134
1591 day(s) ago
587
1621 day(s) ago
257
1636 day(s) ago
1655
1657 day(s) ago
900
1692 day(s) ago
1310
1704 day(s) ago
138
1704 day(s) ago

Info

Statistics

  • 291309 total downloads
  • 98 downloads of current version

Owners and Products

Petabridge Petabridge

Authors

Petabridge

Copyright

Copyright © 2017-2021 Petabridge

Petabridge