{"id":18767762,"url":"https://github.com/lightstep/lightstep-tracer-cpp","last_synced_at":"2026-03-03T21:01:24.832Z","repository":{"id":57527555,"uuid":"57146219","full_name":"lightstep/lightstep-tracer-cpp","owner":"lightstep","description":"The Lightstep distributed tracing library for C++","archived":false,"fork":false,"pushed_at":"2023-09-15T21:04:58.000Z","size":1773,"stargazers_count":39,"open_issues_count":3,"forks_count":16,"subscribers_count":66,"default_branch":"master","last_synced_at":"2025-04-13T06:55:39.613Z","etag":null,"topics":["opentracing"],"latest_commit_sha":null,"homepage":"https://lightstep.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lightstep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-26T16:55:47.000Z","updated_at":"2023-11-09T06:46:32.000Z","dependencies_parsed_at":"2024-06-20T06:07:46.518Z","dependency_job_id":null,"html_url":"https://github.com/lightstep/lightstep-tracer-cpp","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/lightstep/lightstep-tracer-cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightstep%2Flightstep-tracer-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightstep%2Flightstep-tracer-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightstep%2Flightstep-tracer-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightstep%2Flightstep-tracer-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lightstep","download_url":"https://codeload.github.com/lightstep/lightstep-tracer-cpp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lightstep%2Flightstep-tracer-cpp/sbom","scorecard":{"id":589342,"data":{"date":"2025-08-11","repo":{"name":"github.com/lightstep/lightstep-tracer-cpp","commit":"0dcb9160e9298191199896870c84547dfb843623"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4,"checks":[{"name":"Code-Review","score":7,"reason":"Found 22/29 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.14.0 not signed: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/30822123","Warn: release artifact v0.13.0 not signed: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/26956659","Warn: release artifact v0.12.0 not signed: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/21720449","Warn: release artifact v0.11.0 not signed: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/19668530","Warn: release artifact v0.10.1 not signed: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/18946313","Warn: release artifact v0.14.0 does not have provenance: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/30822123","Warn: release artifact v0.13.0 does not have provenance: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/26956659","Warn: release artifact v0.12.0 does not have provenance: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/21720449","Warn: release artifact v0.11.0 does not have provenance: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/19668530","Warn: release artifact v0.10.1 does not have provenance: https://api.github.com/repos/lightstep/lightstep-tracer-cpp/releases/18946313"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":4,"reason":"dependency not pinned by hash detected -- score normalized to 4","details":["Warn: containerImage not pinned by hash: ci/Dockerfile:1: pin your Docker image by updating ubuntu:18.04 to ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: pipCommand not pinned by hash: ci/release.sh:9","Warn: pipCommand not pinned by hash: ci/setup_build_environment.sh:28","Info:   0 out of   1 containerImage dependencies pinned","Info:   2 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T21:26:00.869Z","repository_id":57527555,"created_at":"2025-08-20T21:26:00.869Z","updated_at":"2025-08-20T21:26:00.869Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30060626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["opentracing"],"created_at":"2024-11-07T19:08:29.797Z","updated_at":"2026-03-03T21:01:24.807Z","avatar_url":"https://github.com/lightstep.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lightstep-tracer-cpp\n\u003e ❗ **This instrumentation is no longer recommended**. Please review [documentation on setting up and configuring the OpenTelemetry C++ API and SDK](https://github.com/open-telemetry/opentelemetry-cpp) for more information on migrating to updated instrumentation.\n\n[![MIT license](http://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)\n\nThe LightStep distributed tracing library for C++.\n\n## Installation\n\nThe library supports being built in several configurations to support\na variety of uses.  There are three transport options available:\n\n1. Streaming HTTP transport (*NEW in 0.9.x*): This option uses multiple outbound HTTP 1.1 connections to send spans to LightStep.  This transport option is optimized for concurrency and throughput, compared with the gRPC transport option. TLS is not currently supported in this configuration.\n1. gRPC transport (*DEFAULT*): This option uses the gRPC library for transport. This transport option is not optimized for concurrency and throughput, compared with the the Streaming HTTP transport option.\n1. User-defined transport: This option allows the user to supply custom logic for transporting span objects to LightStep. Users must implement one of the LightStep-supported transports themselves with this option.\n\nThe library also supports dynamic loading, for applications that support more than one OpenTracing-compatible tracer.  To use the dynamic library, we recommend installing the binary plugin included with each release (e.g., [the 0.9.0 plugin](https://github.com/lightstep/lightstep-tracer-cpp/releases/download/v0.9.0/linux-amd64-liblightstep_tracer_plugin.so.gz)).\n\n### Requirements\n\nTo build and install the LightStep distributed tracing library, you will need to have several tools and libraries intalled.\n\n1. cmake\n1. protobuf\n1. grpc (for gRPC transport)\n1. c-ares (for Streaming HTTP transport)\n1. libevent (for Streaming HTTP transport)\n1. [OpenTracing C++](https://github.com/opentracing/opentracing-cpp) library.\n\n### Building\n\nGet and install the current [1.5.x release of OpenTracing](https://github.com/opentracing/opentracing-cpp/archive/v1.5.1.tar.gz) as described in that repository's README.  After installing the OpenTracing APIs, generate the Makefile with the desired build options.\n\n1. For gRPC, use `-DWITH_GRPC=ON`\n1. For Streaming HTTP, use `-DWITH_LIBEVENT=ON -DWITH_CARES=ON -DWITH_GRPC=OFF`\n1. For Dynamic loading support, add `-DWITH_DYNAMIC_LOAD=ON`\n\nRun these commands to configure and build the package.\n\n```\n$ mkdir .build\n$ cd .build\n$ cmake ..\n$ make\n$ sudo make install\n```\n\n### OS X specific steps\n\nSeveral packages are required to complete this build.  To install all the dependencies on OS X using `brew`:\n\n```\nbrew install cmake\nbrew install protobuf\nbrew install grpc         # for gRPC\nbrew install c-ares       # for Streaming HTTP\nbrew install libevent     # for Streaming HTTP\nbrew install pkg-config\n```\n\n### Windows specific steps\n\nBasic support is available for windows. Dependencies can be installed with [vcpkg](https://github.com/microsoft/vcpkg).\n\n```\nvcpkg install libevent:x64-windows-static\nvcpkg install protobuf:x64-windows-static\nvcpkg install opentracing:x64-windows-static\nvcpkg install c-ares:x64-windows-static\n```\n\nThe lightstep tracer can then be built with\n\n```\n$VCPKG_DIR=\u003cpath to where vcpkg was installed\u003e\ncmake -DBUILD_SHARED_LIBS=OFF `\n      -DWITH_DYNAMIC_LOAD=OFF `\n      -DWITH_GRPC=OFF `\n      -DWITH_LIBEVENT=ON `\n      -DWITH_CARES=ON `\n      -DVCPKG_TARGET_TRIPLET=x64-windows-static `\n      \"-DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR\\scripts\\buildsystems\\vcpkg.cmake\" `\n      \u003cpath-to-lightstep\u003e\ncmake --build .\n```\n\nThe [streaming example](example/stream/main.cpp) can  be run with `.\\example\\stream\\Debug\\stream.exe`.\n\n## Getting started\n\nTo initialize the LightStep tracer, configure the options and\nconstruct the object as shown below.  The `Tracer` returned by\n`lightstep::MakeLightStepTracer` may be passed manually through the\napplication, or it can be set as the `opentracing::Global()` tracer. \n\n```cpp\n#include \u003copentracing/tracer.h\u003e\n#include \u003clightstep/tracer.h\u003e\n\nconst bool use_streaming_tracer = true;\n\nvoid initGlobalTracer() {\n  lightstep::LightStepTracerOptions options;\n  options.component_name = \"c++ quickstart app\";\n  options.access_token = \"hello\";\n\n  // Configure the tracer to send to the local developer satellite:\n  options.collector_plaintext = true;\n  if (use_streaming_tracer) {\n    options.satellite_endpoints = {{\"localhost\", 8360}};\n    options.use_stream_recorder = true;\n  } else {\n    options.collector_host = \"localhost\";\n    options.collector_port = 8360;\n    options.use_stream_recorder = false;\n  }\n\n  auto tracer = lightstep::MakeLightStepTracer(std::move(options));\n\n  opentracing::Tracer::InitGlobal(tracer);\n}\n\nint main() {\n  initGlobalTracer();\n\n  auto span = opentracing::Tracer::Global()-\u003eStartSpan(\"demo\");\n\n  span-\u003eSetTag(\"key\", \"value\");\n  span-\u003eLog({{\"logkey\", \"logval\"},\n             {\"number\", 1}});\n  span-\u003eFinish();\n\n  opentracing::Tracer::Global()-\u003eClose();\n  \n  return 0;\n}\n```\n\nFor instrumentation documentation, see the [opentracing-cpp docs](https://github.com/opentracing/opentracing-cpp).\n\n## Dynamic loading\n\nThe LightStep tracer supports dynamic loading and construction from a JSON configuration. See the [schema](lightstep-tracer-configuration/tracer_configuration.schema.json) for details on the JSON format.\n\n## Testing\n\nThe lightstep-streaming Python module, which is contained in this repo, is performance tested in CI using [LightStep Benchmarks](https://github.com/lightstep/lightstep-benchmarks). Performance regression tests are run automatically every commit, and performance graphs can be generated with manual approval. **This repo will show a yellow dot for CI test status even when all of the automatic tests have run. Because LightStep Benchmarks performance graphs are only generated after manual approval and CircleCI counts them as \"running\" before they've been approved, you won't see a green status check mark unless you've manually approved performance graph generation.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightstep%2Flightstep-tracer-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flightstep%2Flightstep-tracer-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightstep%2Flightstep-tracer-cpp/lists"}