openmeter

module
v1.0.0-beta.172 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2024 License: Apache-2.0

README

OpenMeter logo

OpenMeter

GitHub Release GitHub Workflow Status OpenSSF Scorecard Go Report Card GitHub Repo stars X (formerly Twitter) Follow

OpenMeter is a Real-Time and Scalable Usage Metering for AI, Usage-Based Billing, Infrastructure, and IoT use-cases.

Learn more about OpenMeter at https://openmeter.io.

Try It

Get started with the latest version of OpenMeter in minutes.

Local

git clone git@github.com:openmeterio/openmeter.git
cd openmeter/quickstart
docker compose up -d

Check out the quickstart guide for a 5-minute overview and demo of OpenMeter.

Cloud

Sign up for a free account and start metering your usage in the cloud.

[!TIP] Check out how OpenMeter Cloud compares with the self-hosted version in our comparison guide.

Deploy

Deploy OpenMeter to your Kubernetes cluster using our Helm chart.

Community

To engage with our community, you can use the following resources:

Examples

See our examples to learn about common OpenMeter use-cases.

API

OpenMeter exposes a REST API for integrations.

Client SDKs

Currently, we offer the following Client SDKs:

In cases where no specific SDK is available for your preferred programming language, you can utilize the OpenAPI definition. Please raise a GitHub issue to request SDK support in other languages.

Development

For an optimal developer experience, it is recommended to install Nix and direnv.

Installing Nix and direnv

Note: These are instructions that SHOULD work in most cases. Consult the links above for the official instructions for your OS.

Install Nix:

sh <(curl -L https://nixos.org/nix/install) --daemon

Consult the installation instructions to install direnv using your package manager.

On MacOS:

brew install direnv

Install from binary builds:

curl -sfL https://direnv.net/install.sh | bash

The last step is to configure your shell to use direnv. For example for bash, add the following lines at the end of your ~/.bashrc:

eval "\$(direnv hook bash)"

Then restart the shell.

For other shells, see https://direnv.net/docs/hook.html.

MacOS specific instructions

Nix may stop working after a MacOS upgrade. If it does, follow these instructions.


Run the dependencies:

make up

Run OpenMeter:

make run

Run tests:

make test

Run linters:

make lint

Roadmap

Visit our website at https://openmeter.io for our public roadmap.

License

The project is licensed under the Apache 2.0 License.

FOSSA Status

Directories

Path Synopsis
api
Package api provides primitives to interact with the openapi HTTP API.
Package api provides primitives to interact with the openapi HTTP API.
client/go
Package openmeter provides primitives to interact with the openapi HTTP API.
Package openmeter provides primitives to interact with the openapi HTTP API.
types
Some parts of the OpenAPI spec are not supported by oapi-codegen, such as the "oneOf" and "anyOf" keywords.
Some parts of the OpenAPI spec are not supported by oapi-codegen, such as the "oneOf" and "anyOf" keywords.
ci module
cmd
collector
Package config loads application configuration.
Package config loads application configuration.
openmeter
dedupe
Package dedupe implements in-process event deduplication.
Package dedupe implements in-process event deduplication.
dedupe/memorydedupe
Package memorydedupe implements in-memory event deduplication.
Package memorydedupe implements in-memory event deduplication.
dedupe/redisdedupe
Package redisdedupe implements event deduplication using Redis.
Package redisdedupe implements event deduplication using Redis.
ent
ingest
Package ingest implements event ingestion.
Package ingest implements event ingestion.
namespace
Package namespace adds a concept of tenancy to OpenMeter allowing to segment clients.
Package namespace adds a concept of tenancy to OpenMeter allowing to segment clients.
pkg
framework/operation
Package operation provides an abstraction for RPC-style APIs.
Package operation provides an abstraction for RPC-style APIs.
kafka
Package kafka implements tools to work with kafka Producers and Consumers.
Package kafka implements tools to work with kafka Producers and Consumers.
test
tools
migrate
A very lightweigh migration tool to replace `ent.Schema.Create` calls.
A very lightweigh migration tool to replace `ent.Schema.Create` calls.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL