У меня есть следующая функция для публикации 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