Skip to content

Commit

Permalink
chore: review feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
basert committed Nov 11, 2024
1 parent 654896e commit a51fd18
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 4 deletions.
47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Utopia Telemetry

![Total Downloads](https://img.shields.io/packagist/dt/utopia-php/telemetry.svg)
[![Discord](https://img.shields.io/discord/564160730845151244?label=discord)](https://appwrite.io/discord)

Utopia Telemetry is a powerful Telemtry library. This library is aiming to be as simple and easy to learn and use. This library is maintained by the [Appwrite team](https://appwrite.io).

Although this library is part of the [Utopia System](https://github.com/utopia-php) project it is dependency free and can be used as standalone with any other PHP project or framework.

## Getting Started

Install using composer:

```bash
composer require utopia-php/telemetry
```

Init in your application:

```php
<?php

require_once __DIR__ . '/vendor/autoload.php';

// Create a Telemetry instance using OpenTelemetry adapter.
use Utopia\Telemetry\Adapter\OpenTelemetry;

$telemetry = new OpenTelemetry('http://localhost:4138', 'namespace', 'app', 'unique-instance-name');
$counter = $telemetry->createUpDownCounter('http.server.active_requests', '{request}');

$counter->add(1);
$counter->add(2);

// Periodically collect metrics and send them to the configured OpenTelemetry endpoint.
$telemetry->collect();

// Example using Swoole
\Swoole\Timer::tick(60_000, fn () => $telemetry->collect());
```

## System Requirements

Utopia Framework requires PHP 8.0 or later. We recommend using the latest PHP version whenever possible.

## Copyright and license

The MIT License (MIT) [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php)
3 changes: 1 addition & 2 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
parameters:
level: 5
paths:
- src
- tests
- src
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Utopia\Telemetry\Histogram;
use Utopia\Telemetry\UpDownCounter;

class Noop implements Adapter
class None implements Adapter
{
public function createCounter(string $name, ?string $unit = null, ?string $description = null, array $advisory = []): Counter
{
Expand Down
3 changes: 2 additions & 1 deletion src/Telemetry/Adapter/OpenTelemetry.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use OpenTelemetry\Contrib\Otlp\MetricExporter;
use OpenTelemetry\Contrib\Otlp\OtlpHttpTransportFactory;
use OpenTelemetry\SDK\Common\Attribute\Attributes;
use OpenTelemetry\SDK\Common\Attribute\AttributesInterface;
use OpenTelemetry\SDK\Metrics\MeterProvider;
use OpenTelemetry\SDK\Metrics\MetricExporterInterface;
use OpenTelemetry\SDK\Metrics\MetricReader\ExportingReader;
Expand Down Expand Up @@ -40,7 +41,7 @@ public function __construct(string $endpoint, string $serviceNamespace, string $
$this->meter = $this->initMeter($exporter, $attributes);
}

protected function initMeter(MetricExporterInterface $exporter, Attributes $attributes): MeterInterface
protected function initMeter(MetricExporterInterface $exporter, AttributesInterface $attributes): MeterInterface
{
$this->reader = new ExportingReader($exporter);
$meterProvider = MeterProvider::builder()
Expand Down

0 comments on commit a51fd18

Please sign in to comment.