- Notifications
You must be signed in to change notification settings - Fork78
A stats collection and distributed tracing framework
License
census-instrumentation/opencensus-php
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Warning
OpenCensus and OpenTracing have merged to formOpenTelemetry, 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, exceptcensus-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.
Census for PHP. Census provides a framework to measure aserver's resource usage and collect performance stats. This repository containsPHP related utilities and supporting software needed by Census.
Install the
opencensus/opencensuspackage usingcomposer:$ composer require opencensus/opencensus:~0.2IMPORTANT: Please ensure your version is >= 0.2.0. There is a potential securityvulnerability in < 0.2.0.
[Optional]: Install the
opencensusextension fromPECL:$ pecl install opencensus-alpha
Enable the extension in your
php.ini:extension=opencensus.soInitialize a tracer for your application:
useOpenCensus\Trace\Tracer;useOpenCensus\Trace\Exporter\EchoExporter;Tracer::start(newEchoExporter());
To add tracing to a block of code, you can use the closure/callable form orexplicitly open and close spans yourself.
$pi = Tracer::inSpan(['name' =>'expensive-operation'],function() {// some expensive operationreturncalculatePi(1000);});$pi = Tracer::inSpan(['name' =>'expensive-operation'],'calculatePi', [1000]);
// Creates a detached span$span = Tracer::startSpan(['name' =>'expensive-operation']);// Opens a scope that attaches the span to the current context$scope = Tracer::withSpan($span);try {$pi =calculatePi(1000);}finally {// Closes the scope (ends the span)$scope->close();}
You can specify different samplers when initializing a tracer. The defaultsampler is theAlwaysSampleSampler which will attempt to trace all requests.
The provided samplers are:
| Class | Description |
|---|---|
| NeverSampleSampler | Never trace any requests |
| AlwaysSampleSampler | Trace all requests |
| MultiSampler | Check multiple samplers |
| QpsSampler | Trace X requests per second. Requires a PSR-6 cache implementation |
| ProbabilitySampler | Trace X percent of requests. |
If you would like to provide your own sampler, create a class that implementsSamplerInterface.
You can choose different exporters to send the collected traces to.
The provided exporters are:
| Class | Description | Dependency |
|---|---|---|
| EchoExporter | Output the collected spans to stdout | |
| FileExporter | Output JSON encoded spans to a file | |
| JaegerExporter | Report traces to Jaeger server via Thrift over UDP | opencensus/opencensus-exporter-jaeger |
| LoggerExporter | Exporter JSON encoded spans to a PSR-3 logger | |
| NullExporter | No-op | |
| OneLineEchoExporter | Output the collected spans to stdout with one-line | |
| StackdriverExporter | Report traces to Google Cloud Stackdriver Trace | opencensus/opencensus-exporter-stackdriver |
| ZipkinExporter | Report collected spans to a Zipkin server | opencensus/opencensus-exporter-zipkin |
If you would like to provide your own reporter, create a class that implementsExporterInterface.
This library followsSemantic Versioning.
Please note it is currently under active development. Any release versioned0.x.y is subject to backwards incompatible changes at any time.
GA: Libraries defined at a GA quality level are stable, and will notintroduce backwards-incompatible changes in any minor or patch releases. We willaddress issues and requests with the highest priority.
Beta: Libraries defined at a Beta quality level are expected to be mostlystable and we're working towards their release candidate. We will address issuesand requests with a higher priority.
Alpha: Libraries defined at an Alpha quality level are still awork-in-progress and are more likely to get backwards-incompatible updates.
Current Status: Alpha
Contributions to this library are always welcome and highly encouraged.
SeeCONTRIBUTING for more information on how to get started.
SeeRELEASING for more information on releasing new versions.
Apache 2.0 - SeeLICENSE for more information.
This is not an official Google product.
About
A stats collection and distributed tracing framework
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.