PHP code example of monkeyscloud / monkeyslegion-telemetry
1. Go to this page and download the library: Download monkeyscloud/monkeyslegion-telemetry library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
monkeyscloud / monkeyslegion-telemetry example snippets
use MonkeysLegion\Telemetry\Telemetry;
// Increment by 1
Telemetry::counter('http_requests_total');
// Increment by N with dimensional labels
Telemetry::counter('http_requests_total', 1, [
'method' => 'GET',
'status' => '200',
]);
use MonkeysLegion\Telemetry\Middleware\RequestMetricsMiddleware;
$middleware = new RequestMetricsMiddleware(
metrics: $metrics,
pp->pipe($middleware);
use MonkeysLegion\Telemetry\Middleware\RequestTracingMiddleware;
$middleware = new RequestTracingMiddleware(
tracer: $tracer,
propagateContext: true, // inject traceparent in response headers
);
$app->pipe($middleware);
use MonkeysLegion\Telemetry\Attribute\Traced;
use MonkeysLegion\Telemetry\Tracing\SpanKind;
class UserService
{
#[Traced('fetch-user')]
public function find(int $id): User { /* ... */ }
#[Traced(kind: SpanKind::CLIENT, attributes: ['db.system' => 'mysql'])]
public function query(string $sql): array { /* ... */ }
}
use MonkeysLegion\Telemetry\Attribute\Counted;
class OrderController
{
#[Counted('api_orders_total')]
public function create(Request $request): Response { /* ... */ }
#[Counted(labels: ['type' => 'refund'], countExceptions: true)]
public function refund(string $orderId): void { /* ... */ }
}
use MonkeysLegion\Telemetry\Attribute\Timed;
class ReportGenerator
{
#[Timed('report_generation_duration')]
public function generate(string $type): Report { /* ... */ }
#[Timed(buckets: [0.1, 0.5, 1.0, 5.0, 10.0])]
public function export(Report $report): string { /* ... */ }
}
use MonkeysLegion\Telemetry\Metrics\PrometheusMetrics;
use Prometheus\Storage\Redis;
use Prometheus\RenderTextFormat;
// Shared Redis-backed storage for multi-process
$metrics = new PrometheusMetrics(
adapter: new Redis(['host' => 'redis']),
namespace: 'myapp',
);
// Exposition route: GET /metrics
$renderer = new RenderTextFormat();
$registry = $metrics->getRegistry();
header('Content-Type', $renderer->getMimeType());
echo $renderer->render($registry->getMetricFamilySamples());
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.