summaryrefslogtreecommitdiff
path: root/vendor/opentracing/opentracing/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/opentracing/opentracing/README.md')
-rw-r--r--vendor/opentracing/opentracing/README.md306
1 files changed, 0 insertions, 306 deletions
diff --git a/vendor/opentracing/opentracing/README.md b/vendor/opentracing/opentracing/README.md
deleted file mode 100644
index ce03bc951..000000000
--- a/vendor/opentracing/opentracing/README.md
+++ /dev/null
@@ -1,306 +0,0 @@
-# OpenTracing API for PHP
-
-[![Build](https://github.com/opentracing/opentracing-php/actions/workflows/ci.yml/badge.svg)](https://github.com/opentracing/opentracing-php/actions/workflows/ci.yml)
-[![OpenTracing Badge](https://img.shields.io/badge/OpenTracing-enabled-blue.svg)](http://opentracing.io)
-[![Total Downloads](https://poser.pugx.org/opentracing/opentracing/downloads)](https://packagist.org/packages/opentracing/opentracing)
-[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg)](https://php.net/)
-[![License](https://img.shields.io/github/license/opentracing/opentracing-php.svg)](https://github.com/opentracing/opentracing-php/blob/master/LICENSE)
-[![Join the chat at https://gitter.im/opentracing/opentracing-php](https://badges.gitter.im/opentracing/opentracing-php.svg)](https://gitter.im/opentracing/opentracing-php?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-PHP library for the OpenTracing's API.
-
-## Required Reading
-
-In order to understand the library, one must first be familiar with the
-[OpenTracing project](http://opentracing.io) and
-[specification](http://opentracing.io/documentation/pages/spec.html) more specifically.
-
-## Installation
-
-OpenTracing-PHP can be installed via Composer:
-
-```bash
-composer require opentracing/opentracing
-```
-
-## Usage
-
-When consuming this library one really only need to worry about a couple of key
-abstractions: the `Tracer::startActiveSpan` and `Tracer::startSpan` method,
-the `Span` interface, the `Scope` interface and binding a `Tracer` at bootstrap time. Here are code snippets
-demonstrating some important use cases:
-
-### Singleton initialization
-
-The simplest starting point is to set the global tracer. As early as possible, do:
-
-```php
-use OpenTracing\GlobalTracer;
-
-GlobalTracer::set(new MyTracerImplementation());
-```
-
-### Creating a Span given an existing Request
-
-To start a new `Span`, you can use the `startSpan` method.
-
-```php
-use OpenTracing\Formats;
-use OpenTracing\GlobalTracer;
-
-...
-
-// extract the span context
-$spanContext = GlobalTracer::get()->extract(
- Formats\HTTP_HEADERS,
- getallheaders()
-);
-
-function doSomething() {
- ...
-
- // start a new span called 'my_span' and make it a child of the $spanContext
- $span = GlobalTracer::get()->startSpan('my_span', ['child_of' => $spanContext]);
-
- ...
-
- // add some logs to the span
- $span->log([
- 'event' => 'soft error',
- 'type' => 'cache timeout',
- 'waiter.millis' => 1500,
- ])
-
- // finish the the span
- $span->finish();
-}
-```
-
-### Starting a new trace by creating a "root span"
-
-It's always possible to create a "root" `Span` with no parent or other causal reference.
-
-```php
-$span = $tracer->startSpan('my_first_span');
-...
-$span->finish();
-```
-
-### Active Spans and Scope Manager
-
-For most use cases, it is recommended that you use the `Tracer::startActiveSpan` function for
-creating new spans.
-
-An example of a linear, two level deep span tree using active spans looks like
-this in PHP code:
-```php
-// At dispatcher level
-$scope = $tracer->startActiveSpan('request');
-...
-$scope->close();
-```
-```php
-// At controller level
-$scope = $tracer->startActiveSpan('controller');
-...
-$scope->close();
-```
-
-```php
-// At RPC calls level
-$scope = $tracer->startActiveSpan('http');
-file_get_contents('http://php.net');
-$scope->close();
-```
-
-When using the `Tracer::startActiveSpan` function the underlying tracer uses an
-abstraction called scope manager to keep track of the currently active span.
-
-Starting an active span will always use the currently active span as a parent.
-If no parent is available, then the newly created span is considered to be the
-root span of the trace.
-
-Unless you are using asynchronous code that tracks multiple spans at the same
-time, such as when using cURL Multi Exec or MySQLi Polling it is recommended that you
-use `Tracer::startActiveSpan` everywhere in your application.
-
-The currently active span gets automatically finished when you call `$scope->close()`
-as you can see in the previous examples.
-
-If you don't want a span to automatically close when `$scope->close()` is called
-then you must specify `'finish_span_on_close'=> false,` in the `$options`
-argument of `startActiveSpan`.
-
-#### Creating a child span assigning parent manually
-
-```php
-$parent = GlobalTracer::get()->startSpan('parent');
-
-$child = GlobalTracer::get()->startSpan('child', [
- 'child_of' => $parent
-]);
-
-...
-
-$child->finish();
-
-...
-
-$parent->finish();
-```
-
-#### Creating a child span using automatic active span management
-
-Every new span will take the active span as parent and it will take its spot.
-
-```php
-$parent = GlobalTracer::get()->startActiveSpan('parent');
-
-...
-
-/*
- * Since the parent span has been created by using startActiveSpan we don't need
- * to pass a reference for this child span
- */
-$child = GlobalTracer::get()->startActiveSpan('my_second_span');
-
-...
-
-$child->close();
-
-...
-
-$parent->close();
-```
-
-### Serializing to the wire
-
-```php
-use GuzzleHttp\Client;
-use OpenTracing\Formats;
-
-...
-
-$tracer = GlobalTracer::get();
-
-$spanContext = $tracer->extract(
- Formats\HTTP_HEADERS,
- getallheaders()
-);
-
-try {
- $span = $tracer->startSpan('my_span', ['child_of' => $spanContext]);
-
- $client = new Client;
-
- $headers = [];
-
- $tracer->inject(
- $span->getContext(),
- Formats\HTTP_HEADERS,
- $headers
- );
-
- $request = new \GuzzleHttp\Psr7\Request('GET', 'http://myservice', $headers);
- $client->send($request);
- ...
-
-} catch (\Exception $e) {
- ...
-}
-...
-```
-
-### Deserializing from the wire
-
-When using http header for context propagation you can use either the `Request` or the `$_SERVER`
-variable:
-
-```php
-use OpenTracing\GlobalTracer;
-use OpenTracing\Formats;
-
-$tracer = GlobalTracer::get();
-$spanContext = $tracer->extract(Formats\HTTP_HEADERS, getallheaders());
-$tracer->startSpan('my_span', [
- 'child_of' => $spanContext,
-]);
-```
-
-### Flushing Spans
-
-PHP as a request scoped language has no simple means to pass the collected spans
-data to a background process without blocking the main request thread/process.
-The OpenTracing API makes no assumptions about this, but for PHP that might
-cause problems for Tracer implementations. This is why the PHP API contains a
-`flush` method that allows to trigger a span sending out of process.
-
-```php
-use OpenTracing\GlobalTracer;
-
-$application->run();
-
-register_shutdown_function(function() {
- /* Flush the tracer to the backend */
- $tracer = GlobalTracer::get();
- $tracer->flush();
-});
-```
-
-This is optional, tracers can decide to immediately send finished spans to a
-backend. The flush call can be implemented as a NO-OP for these tracers.
-
-### Using `StartSpanOptions`
-
-Passing options to the pass can be done using either an array or the
-SpanOptions wrapper object. The following keys are valid:
-
-- `start_time` is a float, int or `\DateTime` representing a timestamp with arbitrary precision.
-- `child_of` is an object of type `OpenTracing\SpanContext` or `OpenTracing\Span`.
-- `references` is an array of `OpenTracing\Reference`.
-- `tags` is an array with string keys and scalar values that represent OpenTracing tags.
-- `finish_span_on_close` is a boolean that determines whether a span should be finished or not when the
-scope is closed.
-
-```php
-$span = $tracer->startActiveSpan('my_span', [
- 'child_of' => $spanContext,
- 'tags' => ['foo' => 'bar'],
- 'start_time' => time(),
-]);
-```
-
-### Propagation Formats
-
-The propagation formats should be implemented consistently across all tracers.
-If you want to implement your own format, then don't reuse the existing constants.
-Tracers will throw an exception if the requested format is not handled by them.
-
-- `Tracer::FORMAT_TEXT_MAP` should represent the span context as a key value map. There is no
- assumption about the semantics where the context is coming from and sent to.
-
-- `Tracer::FORMAT_HTTP_HEADERS` should represent the span context as HTTP header lines
- in an array list. For two context details "Span-Id" and "Trace-Id", the
- result would be `['Span-Id: abc123', 'Trace-Id: def456']`. This definition can be
- passed directly to `curl` and `file_get_contents`.
-
-- `Tracer::FORMAT_BINARY` makes no assumptions about the data format other than it is
- proprietary and each Tracer can handle it as it wants.
-
-## Mock implementation
-
-OpenTracing PHP comes with a mock implementation, it has three purposes:
-
-1. Helps to iron the API.
-2. Works as a reference implementation.
-3. Enhances vendor agnostic unit testing as it allows developers to inspect the tracing objects
-in order to do assertions about them.
-
-## Coding Style
-
-OpenTracing PHP follows the [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
-coding standard and the [PSR-4](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md) autoloading standard.
-
-## License
-
-All the open source contributions are under the terms of the [Apache-2.0 License](https://opensource.org/licenses/Apache-2.0).