Files
flake/environments/server/otel.nix

115 lines
2.3 KiB
Nix

{pkgs, ...}: {
services.opentelemetry-collector = {
enable = true;
package = pkgs.opentelemetry-collector-contrib;
configFile = ./otelcol.yaml;
};
services.mimir = {
enable = true;
configuration = {
multitenancy_enabled = false;
server = {
http_listen_port = 1880;
grpc_listen_port = 9095;
};
};
};
services.loki = {
enable = true;
configuration = {
auth_enabled = false;
server = {
http_listen_port = 1881;
grpc_listen_port = 9096;
};
storage_config = {
filesystem = {
directory = "/var/lib/loki/chunks";
};
};
common = {
path_prefix = "/var/lib/loki";
ring = {
kvstore = {
store = "inmemory";
};
};
};
schema_config = {
configs = [
{
from = "2020-05-15";
store = "tsdb";
object_store = "filesystem";
schema = "v13";
index = {
prefix = "index_";
period = "24h";
};
}
];
};
};
};
services.tempo = {
enable = true;
settings = {
server = {
http_listen_port = 1882;
grpc_listen_port = 9097;
};
storage = {
trace = {
backend = "local";
local = {
path = "/var/lib/tempo";
};
wal = {
path = "/var/lib/tempo/wal";
};
};
};
};
};
services.grafana = {
enable = true;
settings = {
server = {
http_addr = "127.0.0.1";
http_port = 1892;
domain = "grafana.sdg.moe";
};
};
provision = {
enable = true;
datasources.settings.datasources = [
{
name = "mimir";
type = "prometheus";
url = "http://localhost:1880/prometheus";
isDefault = false;
jsonData = {
prometheusType = "Mimir";
};
}
{
name = "loki";
type = "loki";
url = "http://localhost:1881";
isDefault = true;
}
{
name = "tempo";
type = "tempo";
url = "localhost:1882";
isDefault = false;
}
];
};
};
}