FactoriOTel 0.3.3

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global FactoriOTel --version 0.3.3                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local FactoriOTel --version 0.3.3                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=FactoriOTel&version=0.3.3                
nuke :add-package FactoriOTel --version 0.3.3                

FactoriOTel

This tool connects to one or many Factorio servers through RCON, reads their data periodically and expose them through OpenTelemetry exporters.

See also the FactorioSharp.Instrumentation nuget to integrate the instrumentation tools to an existing application.

Getting Started

Get the FactoriOTel application:

  • using the .NET CLI: dotnet tool install --global FactoriOTel
  • or from this repository releases

Create a config.yml file:

servers:
  - name: my-awesome-server
    rcon-endpoint: localhost:1234
    rcon-password: password

exporters:
  prometheus:
    endpoint: localhost:9090

Then run the FactoriOTel global command (or the corresponding executable on your platform)

FactoriOTel config.yml

Usage

FactoriOTel 0.3.2+ee48cd9bfa2e6847a40f1be1820ca4a82974c351
Copyright (c) 2024 Ismail Bennani
USAGE:
Run using configuration from config.yml:
  FactoriOTel.exe config.yml

  -v, --verbose      (Default: false) Print more information to help diagnose
                     issues with the application
  --help             Display this help screen.
  --version          Display version information.
  config (pos. 0)    Required. Configuration file

Configuration file

See config.example.yml.

The file is expected to have the following structure.

# Servers to read data from.
# At least one server must be configured.
servers:
  [ - <server_config> ... ]

# Exporters that expose the data from the server.
# At least one exporter must be configured.
exporters:
  # Expose an HTTP listener that will listen from prometheus requests.
  # See https://prometheus.io/
  [ prometheus: <prometheus_config> ]

  # Write the signals to the standard output 
  [ stdout: <stdout_config> ]

<server_config>

# The name of the server. 
# Its value will be exported as a `factorio_server_name` tag in all the measurements from the server
name: <string> 

# URI at which the Factorio server exposes its RCON interface.
# Note: the port should be the --rcon-port specified as argument of the Factorio server command
rcon-endpoint: <uri>

# The password specified as --rcon-password argument of the Factorio server command
rcon-password: <string>

See FactorioSharp.Instrumentation

<prometheus_config>

# The endpoint on which the HTTP listener should listen for prometheus requests
endpoint: <uri>

# The path to use for the scraping endpoint
[ scrape-endpoint-path: <string> | default = /metrics ]

See OpenTelemetry.Exporter.Prometheus.HttpListener

<stdout_config>

There are no configuration available for the standard output exporter: it prints the signals to the standard output.
See OpenTelemetry.Exporter.Console

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.3.6 186 4/14/2024
0.3.5 162 4/7/2024
0.3.4 156 4/7/2024
0.3.3 151 4/7/2024
0.3.2 154 4/7/2024