Mohammad Nawaz Ответов: 1

Как передать данные в datadog api из службы windows на языке C#


Привет Я хочу отправить данные в datadog API, у меня есть ключ datadog API, но я не знаю, как отправить данные из моего оконного сервиса в c#

Что я уже пробовал:

Поскольку я очень новичок в datadog, я только что создал пользователя и у меня есть ключ api Datadog

Richard MacCutchan

Задать Datadog, кем бы они ни были.

1 Ответов

Рейтинг:
9

Garth J Lancaster

Вы можете попробовать их API - хорошо документированный События[^]

Предположим, что ваши данные о событиях находятся в формате JSON и выглядят следующим образом

{
  "aggregation_key": "string",
  "alert_type": "info",
  "date_happened": "integer",
  "device_name": [],
  "host": "string",
  "priority": "normal",
  "related_event_id": "integer",
  "source_type_name": "string",
  "tags": [
    "environment:test"
  ],
  "text": "Oh boy!",
  "title": "Did you hear the news today?"
}


Вы могли бы использовать RestSharp RestSharp[^] , или более простой код, например
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.datadoghq.com/api/v1/events");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers["DD-API-KEY"] = "the-value";          // or httpWebRequest.Headers.Add("DD-API-KEY", "the-api-key-value")
httpWebRequest.Headers["DD-APPLICATION-KEY] = "the-value";   // or httpWebRequest.Headers.Add("DD-APPLICATION-KEY", "the-application-key-value")
// HTTPS 
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };    

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string json = "{...your event data here...}";

    streamWriter.Write(json);
}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    var result = streamReader.ReadToEnd();
}


Mohammad Nawaz

Привет @Garth,
Спасибо за ваш ответ, но он показывает, чтобы публиковать данные о событиях. Но мое требование заключается в том, что я должен вызвать сторонний API, и он возвращает некоторые данные, так как же я могу показать эти данные в метриках или графическом представлении из моей службы windows.

Garth J Lancaster

Я почти уверен, что ответил вам на вопрос: "Привет, я хочу отправить данные в datadog API, у меня есть ключ datadog API, но я не знаю, как отправить данные из моего оконного сервиса в c#" ... если вы хотите сейчас сделать GET для получения данных, вам нужно изменить часть кода

httpWebRequest.Method = "POST";
и

удалить
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string json = "{...your event data here...}";

    streamWriter.Write(json);
}


Затем вам нужно будет прочитать ссылку API trhe DataDog и посмотреть, как отформатировать запрос - т. е. это "https://api.datadoghq.com/api/v1/events" будет по-другому