Имея datadog слушать сокет в C ++ - PullRequest
0 голосов
/ 06 января 2020

У меня есть следующая функция для публикации sh метрики данных

int PublishMetric(Metric* metric)
{
    printf("Sending metric to datadog metric: %s value: %.2f\n", metric->metricName, metric->value);
    DogFood::Tags datadogTags;
    for (int idx=0; idx<metric->numOfTags; idx++)
    {
        datadogTags[metric->tags[idx].tagName] = metric->tags[idx].tagValue;
    }
    DogFood::Metric(
            metric->metricName,
            metric->value,
            (DogFood::Type)metric->metricType,
            1,
            datadogTags
    );
}

Я сейчас пытаюсь изменить ее, чтобы она go проходила через сокет, как я обнаружил на этой следующей странице:

https://github.com/garrettsickles/DogFood под UDS - Unix Доменные сокеты (пользовательские) .

Теперь функция выглядит следующим образом:

int PublishMetric(Metric* metric)
{
    printf("Sending metric to datadog metric: %s value: %.2f\n", metric->metricName, metric->value);
    DogFood::Tags datadogTags;
    for (int idx=0; idx<metric->numOfTags; idx++)
    {
        datadogTags[metric->tags[idx].tagName] = metric->tags[idx].tagValue;
    }
    DogFood::Send(
        DogFood::Metric(
                metric->metricName,
                metric->value,
                (DogFood::Type)metric->metricType,
                1,
                datadogTags
        ),
        DogFood::UDS("/var/run/datadog/dsd.socket")
    );
}

Когда я пытаюсь его скомпилировать, я получаю сообщение об ошибке «не участник». Как я могу включить их в качестве участников?

/TCP_Server/src/DatadogAdapter/DatadogAdapter.cpp: In function 'int PublishMetric(Metric*)':
/TCP_Server/src/DatadogAdapter/DatadogAdapter.cpp:30:14: error: 'Send' is not a member of 'DogFood'
     DogFood::Send(
              ^~~~
/TCP_Server/src/DatadogAdapter/DatadogAdapter.cpp:30:14: note: suggested alternative: 'Set'
     DogFood::Send(
              ^~~~
              Set
/TCP_Server/src/DatadogAdapter/DatadogAdapter.cpp:38:18: error: 'UDS' is not a member of 'DogFood'
         DogFood::UDS("/var/run/datadog/dsd.socket")
                  ^~~
make[2]: *** [src/DatadogAdapter/CMakeFiles/DatadogAdapter.dir/DatadogAdapter.cpp.o] Error 1
...