FactorioSharp.Instrumentation 0.2.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package FactorioSharp.Instrumentation --version 0.2.1
NuGet\Install-Package FactorioSharp.Instrumentation -Version 0.2.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FactorioSharp.Instrumentation" Version="0.2.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FactorioSharp.Instrumentation --version 0.2.1
#r "nuget: FactorioSharp.Instrumentation, 0.2.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FactorioSharp.Instrumentation as a Cake Addin
#addin nuget:?package=FactorioSharp.Instrumentation&version=0.2.1

// Install FactorioSharp.Instrumentation as a Cake Tool
#tool nuget:?package=FactorioSharp.Instrumentation&version=0.2.1

FactorioSharp.Instrumentation

Collect metrics and traces from a factorio server through an RCON connection.

Quick start

The RCON interface must be enabled when running factorio. It must also be secured using a password. Add the following parameters to the factorio launch command: --rcon-port 27015 --rcon-password factory

For example

bin\x64\factorio.exe --start-server saves/save.zip --rcon-port 27015 --rcon-password password

You should see a log message in the factorio console that looks like:

Info RemoteCommandProcessor.cpp:133: Starting RCON interface at IP ADDR:({0.0.0.0:27015})

The instrumentation can then be configured using the provided extension methods

Using the OpenTelemetry SDK

using FactorioSharp.Instrumentation.Meters;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;

const string serviceName = "Factorio";
const string serviceVersion = "1.1.104";

using MeterProvider MeterProvider = Sdk.CreateMeterProviderBuilder()
    .ConfigureResource(resource => resource.AddService(serviceName, serviceVersion))
    .AddFactorioInstrumentation("127.0.0.1", "password")
    .AddConsoleExporter()
    .Build();

Using the Hosting extensions

using FactorioSharp.Instrumentation.Meters;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;

const string serviceName = "Factorio";
const string serviceVersion = "1.1.104";

ILoggerFactory loggerFactory = LoggerFactory.Create(builder => builder.AddSimpleConsole());

HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);

builder.Services.AddOpenTelemetry()
    .WithMetrics(
        metrics => metrics.ConfigureResource(resource => resource.AddService(serviceName, serviceVersion))
            .AddFactorioInstrumentation("127.0.0.1", "password", loggerFactory: loggerFactory)
            .AddConsoleExporter()
    );

IHost app = builder.Build();

app.Run();

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.3.6 83 4/14/2024
0.3.5 76 4/7/2024
0.3.4 70 4/7/2024
0.3.3 75 4/7/2024
0.3.2 80 4/7/2024
0.3.1 81 4/7/2024
0.3.0 81 4/7/2024
0.2.14 98 4/6/2024
0.2.13 80 4/6/2024
0.2.12 91 4/6/2024
0.2.11 76 4/6/2024
0.2.10 85 4/3/2024
0.2.9 84 4/2/2024
0.2.8 73 4/1/2024
0.2.6 74 4/1/2024
0.2.5 71 4/1/2024
0.2.4 87 4/1/2024
0.2.3 74 4/1/2024
0.2.2 79 3/31/2024
0.2.1 78 3/30/2024
0.2.0 77 3/30/2024
0.1.0 81 3/30/2024