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 - A stats collection and distributed tracing framework
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.
Quickstart
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.
Directory structure
opencensus/
prefix to get#include
paths likeopencensus/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.
Language support
- STL is required. (e.g.
libstdc++
,libc++
, etc) - C++14 is required.
absl
is used for its building blocks.googletest
is used for tests.benchmark
is used for benchmarking.- We do not depend on:
- Boost
- Exception handling
- RTTI
Compiler support
We are targeting the following compilers:
- gcc 4.8.1
- clang 3.4
- Microsoft Visual Studio 2017 15.9 (see the appveyor documentation for the exact version)