public async Task SendGauges(Dictionary <string, double> metricNameAndValueDictionary) { var series = new DataDogSeries { Series = new List <DataDogSerie>() }; series.Series.AddRange(metricNameAndValueDictionary.Select(m => CreateDataDogGaugeSerie(m.Key, m.Value))); await SendDataAsync(series); }
private async Task SendDataAsync(DataDogSeries series) { try { var payloadString = JsonConvert.SerializeObject(series); _logger.LogDebug($"Payload to be sent to datadog:{Environment.NewLine}{payloadString}"); var content = new StringContent(payloadString); var result = await _client.PostAsync(_url, content); var response = await result.Content.ReadAsStringAsync(); var code = result.StatusCode; _logger.LogDebug($"Datadog post returned with HTTP {code} - '{response}'"); } catch (Exception ex) { _logger.LogWarning($"Failed to post metrics to datadog. {ex}"); } }