Phobos v1.0.0 - Programmatic Configuration, Improved Integrations, and Reduced Pricing

Phobos 1.0.0 is Cheaper, Faster, and Better Than Before

Phobos logo

Phobos is Petabridge’s application performance monitoring (APM) integration library for Akka.NET, which we released originally back in 2018. Since then it’s undergone some major changes and transformations in order to better support Akka.NET and Akka.NET users.

Short Version

  • Phobos, our Akka.NET application performance monitoring (APM) library that automatically traces and measures actor activity without requiring you to write any instrumentation code, 1.0.0 is now available.
  • It now easily integrates with non-Akka.NET technologies such as ASP.NET and works with a much larger selection of tracing and metrics APM systems than it did before.
  • Phobos now only costs $4,000 per year per organization with no limitations on the number of seats or nodes it’s installed upon.
  • You can buy Phobos instantly online via credit card at Sdkbin.
  • We offer a full 30-day money back guarantee, so if you contact us within 30 days of your purchase and are dissatisfied with your purchase we will refund you in full.
  • Each Phobos subscription comes with support provided by the Petabridge team, so if you need help installing / configuring / deploying Phobos or if it’s not capturing the data you need you can ask us to help at no additional charge.

You can learn more about Phobos at https://phobos.petabridge.com/ or buy instantly online at https://sdkbin.com/publisher/petabridge/product/phobos

What Phobos Does

Phobos is a set of properietary NuGet packages that you can install into a pre-existing Akka.NET application and automatically begin capturing operational metrics and tracing data, collectively called “telemetry” data, without needing write any APM decorator code.

Phobos Akka.NET application architecture

Phobos automatically captures Akka.NET actor interactions and uses OpenTracing + App.Metrics to automatically export telemetry data to the back-ends of your choice - such as Prometheus, Jaeger, Datadog, Azure Application Insights, and more.

You can see some examples of the types of data Phobos captures in the “Scenarios” section of our tutorials.

What’s New With Phobos 1.0.0?

In the past Phobos used to only work with a small set of providers that were explicitly coded by the Petabridge team and all referenced entirely via HOCON.

This created a number of problems - the biggest of which was that it was very difficult to correlate activity that started outside of Akka.NET, i.e. a HTTP request received by ASP.NET Core, with activity that happened inside Akka.NET, i.e. doing some work in order to produce an HTTP response back.

As of Phobos 1.0 tracers and metrics are configured programmatically, usually by Microsoft.Extensions.DependencyInjection, so it is now trivial to make sure that Akka.NET, ASP.NET, SignalR, and any other technology your application might use (i.e. Kafka) can all easily correlate activity together using a common ITracer and IMetricsRoot implementation.

From the Phobos configuration documentation:

var hocon = ConfigurationFactory.ParseString(File.ReadAllText("Config/app.conf"));

OpenTracing.ITracer tracer = new MockTracer();
App.Metrics.IMetricsRoot metrics = new MetricsBuilder().Configuration.Configure(o =>
    {
        o.GlobalTags.Add("host", Dns.GetHostName());
        o.DefaultContextLabel = "akka.net";
        o.Enabled = true;
        o.ReportingEnabled = true;
    }).Report.ToConsole().Build();

var phobosConfigBuilder = new PhobosConfigBuilder()
    .WithMetrics(m => m.SetMetricsRoot(metrics))
    .WithTracing(t => t.SetTracer(tracer));

// create an ActorSystemSetup class used to configure the ActorSystem
var phobosSetup = PhobosSetup.Create(phobosConfigBuilder)
    .And(BootstrapSetup.Create()
        .WithConfig(hocon)
        .WithActorRefProvider(PhobosProviderSelection.Cluster));

// start ActorSystem
var actorSystem = ActorSystem.Create("myCluster", phobosSetup);

This programmatic configuration of Phobos makes use of the Setup and ActorSystemSetup types that were introduced in Akka.NET v1.4.

There’s widely available middleware for injecting App.Metrics and OpenTracing middleware into ASP.NET Core and other base class libraries provided by Microsoft and we demonstrate how to use these both with Akka.NET and ASP.NET Core in the Phobos Quickstart Tutorial.

Here’s an example of what kinds of output Phobos produces for traces in Datadog for instance:

Phobos + Akka.NET + ASP.NET Core tracing output in Datadog

In this screenshot you can see the incoming HTTP request handled by ASP.NET Core before it’s handed off to Akka.NET actors for processing before a reply is sent back to the original .Ask operation that produces the outgoing HTTP response.

And you can also see what sorts of Datadog metrics Phobos produces as well:

Phobos + Akka.NET + ASP.NET Core tracing output in Datadog

Want to learn more? Read our Phobos + Datadog tutorial.

Pricing Changes

In the past Phobos was priced on a per-node basis and we typically bundled it with an Akka.NET Support Plan as part of an Enterprise Subscription. Based on feedback we received from customers we decided to both reduce our pricing and simplify it.

Phobos now costs a flat $4,000 per year per organization and can be bought instantly online via credit card at Sdkbin. We offer a 30-day moneyback guarantee, so you can receive a full refund if you let us know within 30 days that you are unhappy with your purchase.

Each Phobos subscription comes with support provided by the Petabridge team, so if you need help installing / configuring / deploying Phobos or if it’s not capturing the data you need you can ask us to help at no additional charge.

What About Phobos and OpenTelemetry?

In the near future Phobos will support the emerging OpenTelemetry standard, but as we noted earlier this summer - OpenTelemetry is still somewhat half-baked for .NET as of late 2020. We expect that by the time .NET 6 is released that OpenTelemetry will be widely available and ready for production use, at which point we will ensure that Phobos supports it.

If you liked this post, you can share it with your followers or follow us on Twitter!
Written by Aaron Stannard on December 15, 2020

 

 

Upcoming Petabridge Live Akka.NET Webinar Trainings

Get up to speed on the leading edge of large-scale .NET development with the Petabridge team. Each training is done remotely via webinar, lasts four hours, and will save you weeks of trial and error.

Course Dates
Akka.NET Application Architecture and Design Patterns
Building Networked .NET Applications with Akka.Remote
.NET Distributed Systems Architecture and Design with Akka.Cluster

Get to the cutting edge with Akka.NET

Learn production best practices, operations and deployment approaches for using Akka.NET.