1.0.0-beta.72 • Published 2 days ago

@openmeter/sdk v1.0.0-beta.72

Weekly downloads
-
License
Apache 2.0
Repository
github
Last release
2 days ago

OpenMeter Node SDK

Install

npm install --save @openmeter/sdk

Example

import { OpenMeter, type Event } from '@openmeter/sdk'

const openmeter = new OpenMeter({ baseUrl: 'http://localhost:8888' })

// Ingesting an event
const event: Event = {
  specversion: '1.0',
  id: 'id-1',
  source: 'my-app',
  type: 'my-type',
  subject: 'my-awesome-user-id',
  time: new Date(),
  data: {
    api_calls: 1,
  },
}
await openmeter.events.ingest(event)

// Fetching a meter
const meter = await openmeter.meters.get('m1')

API

Events

ingest

import { type Event } from '@openmeter/sdk'

const event: Event = {
  specversion: '1.0',
  id: 'id-1',
  source: 'my-app',
  type: 'my-type',
  subject: 'my-awesome-user-id',
  time: new Date(),
  data: {
    api_calls: 1,
  },
}
await openmeter.events.ingest(event)

batch ingest

await openmeter.events.ingest([event1, event2, event3])

list

Retrieve latest raw events. Useful for debugging.

const events = await openmeter.events.list()

Meters

list

List meters.

const meters = await openmeter.meters.list()

get

Get one meter by slug.

const meter = await openmeter.meters.get('m1')

query

Query meter values.

import { WindowSize } from '@openmeter/sdk'

const values = await openmeter.meters.query('my-meter-slug', {
  subject: ['user-1'],
  groupBy: ['method', 'path'],
  from: new Date('2021-01-01'),
  to: new Date('2021-01-02'),
  windowSize: WindowSize.HOUR,
})

meter subjects

List meter subjects.

const subjects = await openmeter.meters.subjects('my-meter-slug')

Portal

createToken

Create subject specific tokens. Useful to build consumer dashboards.

const token = await openmeter.portal.createToken({ subject: 'customer-1' })

invalidateTokens

Invalidate portal tokens for all or specific subjects.

await openmeter.portal.invalidateTokens()

Subject

Subject mappings. Like display name and metadata.

upsert

Upsert subjects.

const subjects = await openmeter.subjects.upsert([
  {
    key: 'customer-1',
    displayName: 'ACME'
  }
])

list

List subjects.

const subjects = await openmeter.subjects.list()

get

Get subject by key.

const subjects = await openmeter.subjects.get('customer-1')

delete

Delete subject by key. It doesn't delete corresponding usage.

await openmeter.subjects.delete('customer-1')
1.0.0-beta.67

2 days ago

1.0.0-beta.68

2 days ago

1.0.0-beta.69

2 days ago

1.0.0-beta.72

2 days ago

1.0.0-beta.66

6 days ago

1.0.0-beta.65

7 days ago

1.0.0-beta.64

13 days ago

1.0.0-beta.63

17 days ago

1.0.0-beta.62

22 days ago

1.0.0-beta.60

1 month ago

1.0.0-beta.59

1 month ago

1.0.0-beta.58

1 month ago

1.0.0-beta.55

2 months ago

1.0.0-beta.56

2 months ago

1.0.0-beta.57

2 months ago

1.0.0-beta.54

2 months ago

1.0.0-beta.53

2 months ago

1.0.0-beta.51

2 months ago

1.0.0-beta.52

2 months ago

1.0.0-beta.50

3 months ago

1.0.0-beta.49

3 months ago

1.0.0-beta.48

3 months ago

1.0.0-beta.47

3 months ago

1.0.0-beta.46

3 months ago

1.0.0-beta.45

3 months ago

1.0.0-beta.44

4 months ago

1.0.0-beta.43

4 months ago

1.0.0-beta.42

4 months ago

1.0.0-beta.40

4 months ago

1.0.0-beta.41

4 months ago

1.0.0-beta.39

4 months ago

1.0.0-beta.37

4 months ago

1.0.0-beta.38

4 months ago

1.0.0-beta.36

4 months ago

1.0.0-beta.35

5 months ago

1.0.0-beta.33

5 months ago

1.0.0-beta.34

5 months ago

1.0.0-beta.22

6 months ago

1.0.0-beta.23

6 months ago

1.0.0-beta.21

6 months ago

1.0.0-alpha.4

9 months ago

1.0.0-alpha.3

9 months ago

1.0.0-alpha.2

9 months ago

1.0.0-alpha.1

10 months ago

1.0.0-beta.28

6 months ago

1.0.0-beta.29

6 months ago

1.0.0-beta.26

6 months ago

1.0.0-beta.24

6 months ago

1.0.0-beta.25

6 months ago

1.0.0-beta.2

9 months ago

1.0.0-beta.3

9 months ago

1.0.0-beta.4

9 months ago

1.0.0-beta.5

9 months ago

1.0.0-beta.1

9 months ago

1.0.0-beta.31

5 months ago

1.0.0-beta.32

5 months ago

1.0.0-beta.6

8 months ago

1.0.0-beta.30

5 months ago

1.0.0-beta.8

8 months ago

1.0.0-beta.9

7 months ago

1.0.0-beta.13

6 months ago

0.0.2

11 months ago

0.0.1

11 months ago