ejtj3/nats-monitoring

There is no license information available for the latest version (v0.0.1) of this package.

Nats monitoring api wrapper

v0.0.1 2024-01-13 09:05 UTC

This package is auto-updated.

Last update: 2024-04-22 22:34:52 UTC


README

68747470733a2f2f7777772e676974626f6f6b2e636f6d2f63646e2d6367692f696d6167652f77696474683d33362c6470723d322c6865696768743d33362c6669743d636f6e7461696e2c666f726d61743d6175746f2f68747470732533412532462532463638333839393338382d66696c65732e676974626f6f6b2e696f2532467e25324666696c6573253246763025324662253246676974626f6f6b2d6c65676163792d66696c65732532466f25324673706163657325323532462d4c714d59635a4d4c31627358724e33457a673025323532466176617461722e706e6725334667656e65726174696f6e25334431353731383438303138393032363237253236616c742533446d65646961

Latest Stable Version Total Downloads License

Nats monitoring

$ composer require ejtj3/nats-monitoring jms/serializer
use EJTJ3\NatsMonitoring\Jms\Serializer\Handler\NatsDateImmutableHandler;
use EJTJ3\NatsMonitoring\Jms\Serializer\Handler\NatsDateIntervalHandler;
use EJTJ3\NatsMonitoring\Model\ConnectionRequest;
use EJTJ3\NatsMonitoring\NatsMonitoringClient;
use JMS\Serializer\Handler\HandlerRegistry;
use JMS\Serializer\SerializerBuilder;
use Symfony\Component\HttpClient\Psr18Client;

// build serializer
$serializerBuilder = new SerializerBuilder();
$serializerBuilder->configureHandlers(static function (HandlerRegistry $registry): void {
    $registry->registerSubscribingHandler(new NatsDateIntervalHandler());
    $registry->registerSubscribingHandler(new NatsDateImmutableHandler());
});
$serializer = $serializerBuilder->build();

$client = new NatsMonitoringClient(
    serializer: $serializer,
    client: new Psr18Client(),
);

$requestOptions = new ConnectionRequest();
$requestOptions->setAuth(true);

$connections = $client->getConnections('https://demo.nats.io:8222', $requestOptions);

Available methods

Name Route Method
General /varz $client->getGeneralSettings('https://demo.nats.io:8222')
Jetstream /jsz $client->getJetstream('https://demo.nats.io:8222')
Connections /connz $client->getConnections('https://demo.nats.io:8222')
Accounts /accountz $client->getAccounts('https://demo.nats.io:8222')
Account stats /accstatz $client->getAccountStats('https://demo.nats.io:8222')
Subscriptions /subsz $client->getSubscriptions('https://demo.nats.io:8222')
Routes /routez $client->getRoutez('https://demo.nats.io:8222')
Leafnodes /leafz $client->getLeafnodes('https://demo.nats.io:8222')
Gateways /gatewayz Not yet implemented
HealthProbe /leafz $client->getHealth('https://demo.nats.io:8222')