/// <summary>
    /// Adds the grafana using the specified logger for Serilog
    /// </summary>
    /// <param name="logger">The logger</param>
    /// <param name="config">The grafana logger</param>
    /// <returns>The logger</returns>
    private static LoggerConfiguration AddGrafana(
        this LoggerConfiguration logger,
        GrafanaConfig config
        )
    {
        if (!config.IsEnabled)
        {
            return(logger);
        }
        if (!config.LokiUrl.IsNotNullOrEmpty())
        {
            return(logger);
        }

        logger.WriteTo.GrafanaLoki(
            uri: config.LokiUrl,
            queueLimit: 20,
            labels: new List <LokiLabel>()
        {
            new LokiLabel()
            {
                Key   = "app-name",
                Value = "Zizi Beta"
            }
        },
            batchPostingLimit: 20,
            createLevelLabel: true
            );

        return(logger);
    }
 public HttpRequestMessage GetRequest(GrafanaConfig config, string url)
 {
     return(new HttpRequestMessage
     {
         Method = HttpMethod.Get,
         RequestUri = new System.Uri(url),
         Headers = { { HttpRequestHeader.Authorization.ToString(), $"Bearer {config.ApiKey}" },
                     { HttpRequestHeader.Accept.ToString(),        "application/json"        } }
     });
 }
        public GrafanaConfig GetGrafanaConfig()
        {
            var config = Database.Load <GrafanaConfig>(GrafanaConfig.DocumentName());

            if (config == null)
            {
                config = new GrafanaConfig();
                Database.Store(config, GrafanaConfig.DocumentName());
            }
            return(config);
        }
 public void SaveGrafanaConfig(GrafanaConfig config)
 {
     Database.Store(config, GrafanaConfig.DocumentName());
 }