Я пробую OpenTracing Jaeger и имею следующий файл test.cpp
:
#include <opentracing/tracer.h>
#include <jaegertracing/Tracer.h>
#include <yaml-cpp/yaml.h>
#include <iostream>
void setUpTracer(const char* configFilePath)
{
auto configYAML = YAML::LoadFile(configFilePath);
auto config = jaegertracing::Config::parse(configYAML);
auto tracer = jaegertracing::Tracer::make(
"example-service", config, jaegertracing::logging::consoleLogger());
opentracing::Tracer::InitGlobal(
std::static_pointer_cast<opentracing::Tracer>(tracer));
}
int main(int argc, char* argv[]){
setUpTracer(argv[1]);
std::cout<<"Hello\n";
return 0;
}
И считаю, что config.yml
будет:
disabled: false
reporter:
logSpans: true
sampler:
type: const
param: 1
Теперь, если я компилирую test.cpp
с помощью g++ test.cpp -lopentracing -ljaegertracing -lyaml-cpp
и запуска ./a.out config.yml
, я получаю
ERROR: cannot connect to socket: Cannot connect socket to remote address { scheme="http", host="127.0.0.1", port=5778, path="/sampling", query="" }
Хотя, если я компилирую с g++ test.cpp -L /usr/local/lib -lopentracing -ljaegertracing -lyaml-cpp
, я получаю хорошее
INFO: Initializing logging reporter
Hello
Содержимое моего /usr/local/lib
это:
cmake libopentracing.so.1.6.0 libthriftqt.so
libjaegertracing.a libthrift-0.11.0.so libthrift.so
libjaegertracing.so libthrift.a libthriftz-0.11.0.so
libjaegertracing.so.0 libthrift_c_glib.a libthriftz.a
libjaegertracing.so.0.6.0 libthrift_c_glib.la libthriftz.la
libopentracing.a libthrift_c_glib.so libthriftz.so
libopentracing_mocktracer.a libthrift_c_glib.so.0 libyaml-cpp.a
libopentracing_mocktracer.so libthrift_c_glib.so.0.0.0 pkgconfig
libopentracing_mocktracer.so.1 libthrift.la python2.7
libopentracing_mocktracer.so.1.6.0 libthriftqt-0.11.0.so python3.6
libopentracing.so libthriftqt.a
libopentracing.so.1 libthriftqt.la
Я использую Jaeger в сочетании с большим проектом, включающим ROS, и получаю ту же ошибку, даже если я add_compile_options(-L /usr/local/lib)
для CMakeLists.txt
соответствующего пакета; Итак, я хотел лучше понять, какова точная причина вышеуказанной ошибки, поэтому, надеюсь, это поможет мне исправить ошибку, связанную с ROS.
Спасибо!