Skip to content

Getting started

Scaffold

dotnet new install ConnectSoft.Saas.MeteringTemplate.Installer
dotnet new connectsoft-saas-metering -n ConnectSoft.MyMeteringService -o ./MyService

Use --recurse-submodules from source.

Build and run

cd MyService
dotnet build ConnectSoft.Saas.MeteringTemplate.slnx
dotnet run --project src/ConnectSoft.Saas.Metering.Application

REST is at api/usage-meters; gRPC exposes UsageMeterManagementService / UsageMeterQueryService.

Try it

# ensure a meter exists, then record usage
curl -X POST https://localhost:5001/api/usage-meters/commands/ensure-provisioned -H "X-Tenant-Id: <tenant>" -d '{ "dimension": "api.requests" }'
curl -X POST https://localhost:5001/api/usage-meters/commands/record-usage -d '{ "dimension": "api.requests", "delta": 5 }'
curl -X POST https://localhost:5001/api/usage-meters/queries/by-tenant-dimension -d '{ "dimension": "api.requests" }'

SampleMeteringSeed seeds a meter (dimension api.requests, counter 42, quota 1000).

Next steps

See also