77 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, pkgs, ... }:
 | 
						|
let
 | 
						|
  cfg = config.services.loki;
 | 
						|
  saveDirectory = "/tank/services/metrics/loki";
 | 
						|
in {
 | 
						|
  services.loki = {
 | 
						|
    enable = true;
 | 
						|
    dataDir = saveDirectory;
 | 
						|
    configuration = {
 | 
						|
      auth_enabled = false;
 | 
						|
      server = {
 | 
						|
        http_listen_port = 3100;
 | 
						|
        http_listen_address = "0.0.0.0";
 | 
						|
        grpc_listen_port = 9096;
 | 
						|
      };
 | 
						|
 | 
						|
      ingester = {
 | 
						|
        wal = {
 | 
						|
          enabled = true;
 | 
						|
          dir = "${saveDirectory}/wal";
 | 
						|
        };
 | 
						|
        lifecycler = {
 | 
						|
          address = "127.0.0.1";
 | 
						|
          ring = {
 | 
						|
            kvstore = {
 | 
						|
              store = "inmemory";
 | 
						|
            };
 | 
						|
            replication_factor = 1;
 | 
						|
          };
 | 
						|
          final_sleep = "0s";
 | 
						|
        };
 | 
						|
        chunk_idle_period = "1h";
 | 
						|
      };
 | 
						|
 | 
						|
      schema_config = {
 | 
						|
        configs = [
 | 
						|
          {
 | 
						|
            from = "2022-12-01";
 | 
						|
            store = "boltdb-shipper";
 | 
						|
            object_store = "filesystem";
 | 
						|
            schema = "v11";
 | 
						|
            index = {
 | 
						|
              prefix = "index_";
 | 
						|
              period = "24h";
 | 
						|
            };
 | 
						|
          }
 | 
						|
        ];
 | 
						|
      };
 | 
						|
 | 
						|
      storage_config = {
 | 
						|
        boltdb_shipper = {
 | 
						|
          active_index_directory = "${saveDirectory}/boltdb-shipper-index";
 | 
						|
          cache_location = "${saveDirectory}/boltdb-shipper-cache";
 | 
						|
          cache_ttl = "24h";
 | 
						|
        };
 | 
						|
        filesystem = {
 | 
						|
          directory = "${saveDirectory}/chunks";
 | 
						|
        };
 | 
						|
      };
 | 
						|
 | 
						|
      limits_config = {
 | 
						|
        allow_structured_metadata = false;
 | 
						|
        reject_old_samples = true;
 | 
						|
        reject_old_samples_max_age = "72h";
 | 
						|
      };
 | 
						|
 | 
						|
      compactor = {
 | 
						|
        working_directory = "${saveDirectory}/compactor";
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  networking.firewall.allowedTCPPorts = [
 | 
						|
    cfg.configuration.server.http_listen_port
 | 
						|
  ];
 | 
						|
}
 |