A stats collection and distributed tracing framework
Warning
OpenCensus and OpenTracing have merged to form OpenTelemetry, which serves as the next major version of OpenCensus and OpenTracing.
OpenTelemetry has now reached feature parity with OpenCensus, with tracing and metrics SDKs available in .NET, Golang, Java, NodeJS, and Python. All OpenCensus Github repositories, except census-instrumentation/opencensus-python, will be archived on July 31st, 2023. We encourage users to migrate to OpenTelemetry by this date.
To help you gradually migrate your instrumentation to OpenTelemetry, bridges are available in Java, Go, Python, and JS. Read the full blog post to learn more.
OpenCensus is a toolkit for collecting application performance and behavior data. It currently includes an API for tracing and stats.
This library is currently in alpha: the API is in the process of being finalized; much of the implementation will be replaced with a more optimized one in the near future.
Please join gitter for help or feedback on this project.
This is not an officially supported Google product.
Please refer to examples/helloworld/
for an example of
instrumentation with OpenCensus.
Please refer to examples/grpc/
for an example RPC
server that integrates gRPC, Stackdriver, and Prometheus.
Please refer to
trace/examples/span_example.cc
for tracing and
stats/examples/view_and_recording_example.cc
for stats.
opencensus/
prefix to get #include
paths like opencensus/trace/span.h
common/
- Provides common libraries and components for OpenCensus.doc/
- Documentation for our APIs, coding style, etc.exporters/
- Exporters send stats and traces to
monitoring services.plugins/
- Plugins add OpenCensus instrumentation to
frameworks.stats/
- OpenCensus stats API.trace/
- OpenCensus tracing API.libstdc++
, libc++
, etc)absl
is used for its building blocks.googletest
is used for tests.benchmark
is used for benchmarking.We are targeting the following compilers: