Skip to content

feat(metering): Get Started guide#3504

Merged
cloudjumpercat merged 12 commits intorelease/konnect-metering-and-billingfrom
feat/get-started-metering-billing
Dec 12, 2025
Merged

feat(metering): Get Started guide#3504
cloudjumpercat merged 12 commits intorelease/konnect-metering-and-billingfrom
feat/get-started-metering-billing

Conversation

@cloudjumpercat
Copy link
Contributor

@cloudjumpercat cloudjumpercat commented Nov 17, 2025

Description

Fixes #3375

Preview Links

https://deploy-preview-3504--kongdeveloper.netlify.app/metering-and-billing/get-started/

Checklist

  • Tested how-to docs. If not, note why here.
  • All pages contain metadata.
  • Any new docs link to existing docs.
  • All autogenerated instructions render correctly (API, decK, Konnect, Kong Manager).
  • Style guide (capitalized gateway entities, placeholder URLs) implemented correctly.
  • Every page has a description entry in frontmatter.
  • Add new pages to the product documentation index (if applicable).

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
@netlify
Copy link

netlify bot commented Nov 17, 2025

Deploy Preview for kongdeveloper ready!

Name Link
🔨 Latest commit 32d425a
🔍 Latest deploy log https://app.netlify.com/projects/kongdeveloper/deploys/693b4cb8dc83ab00091c7caf
😎 Deploy Preview https://deploy-preview-3504--kongdeveloper.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
{% endentity_examples %}
<!--vale on-->

## Enable rate limiting
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed. Metering & Billing doesn't integrate with Gateway rate limiter

{% endentity_examples %}
<!--vale on-->

## Configure ACL plugin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed. Metering & Billing doesn't integrate with Gateway ACL


Creating plans for our feature.

1. In the {{site.konnect_short_name}} sidebar, click **Metering & Billing**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use nested list to separate bigger tasks?
If not, I think we should split this into three sections:

  1. Create Plan
  2. Add Rate Card
  3. Publish Plan

1. In the **Include usage from** dropdown, select "kong-air".
1. Click **Save**.
1. Click the **Subscriptions** tab.
1. Click **Create a Subscription**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a separate section: "Start Subscription"


You can run the following command to test the that the Kong Travel Consumer is invoiced correctly:

<!--vale off-->
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need rate limit section

@@ -0,0 +1,253 @@
---
title: Get started with Metering and Billing in {{site.konnect_short_name}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is get started if you use Kong API Gateway.
How can we have a separate docs for GW and Generic metering?


## Create a Consumer

Create the two consumers, one for the free and one for premium. These will be mapped to our customers/subjects later on
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"one for the free and one for premium"
as it's not relevant here maybe instead say something like:

Create two consumers. Later, we will assign them a Free or Premium plan.

^ ChatGPT recommended this to fix my ACL error, tested and it seems to work.

## Create a meter

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we explain why? Like:
"To meter API request traffic from our consumers we will create a meter:"

1. Click **Next**.
1. From the **Pricing model** dropdown menu, select "Free".
1. Click **Next**.
1. From the **Entitlements** dropdown, select "Metered".
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Setting up entitlement is optional. Not sure if we should include in getting started.
Wdyt?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also today M&B will track entitlement balance but won't enforce it in Gateway yet. It's coming in Q2. Maybe call it out as an info box here.

1. Click **Publish Plan**.

## Map Consumers to customers

Copy link
Contributor

@hekike hekike Nov 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should explain what a customer is briefly like
"Customers are the entities who pay for the consumption. In many cases, it's equal to your Consumer. Here we are going to create a Customer and map our Consumer to it."

url: /plugins/
automated_tests: false
---

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add an intro like:
"This getting-started guide shows how you can meter Kong API requests and invoice your customers after their API consumption."


## Enable authentication

Authentication lets you identify a Consumer so that you can apply rate limiting.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Authentication lets you identify a Consumer so that you can apply rate limiting. =>
Authentication lets you identify a Consumer so you can invoice Customers after their consumption.

1. In the Metering & Billing sidebar, click **Product Catalog**.
1. Click the **Plans** tab.
1. Click **Create Plan**.
1. In the **Name** field, enter `Free`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Main use-case should be paid, setup a usage-based price. Otherwise we won't have invoice.

1. Click **Add Rate Card**.
1. From the **Feature** dropdown menu, select "example-service".
1. Click **Next**.
1. From the **Pricing model** dropdown menu, select "Package".
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO selecting "Usage Based" would be simpler and more suitable for getting started.

1. Click **Create Subscription**.
1. Navigate back to **Customers** in the breadcrumbs.
1. Click **Create Customer**.
1. In the **Name** field, enter `Kong Travel`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to setup two Customers? One is not enough?

1. From the **Value** dropdown menu, select "example-service".
1. Click **Save**.

## Create a plan
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We setup two plans here, if we want to keep both let's split into two sections:

  1. Setup a Free Plan
  2. Setup a Paid Plan

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
This getting-started guide shows how you can meter {{site.base_gateway}} API requests and invoice your customers based on their API consumption with Metering & Billing in {{site.konnect_short_name}}.

In this guide, you'll:
* Create a Consumer that you'll map as a customer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Create a Consumer that you'll map as a customer

Create a Gateway Consumer that you'll map as Metering & Billing Customer

* Create a premium plan based on API usage
* Start subscriptions for a customer
* Collect an invoice for a customer on the paid premium plan and see their API usage

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Collect => Generate

(as we don't collect revenue, that's the payment gateway)

{% endmermaid %}


## Create a Consumer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Create a Consumer

Create a Gateway Consumer


## Create a Consumer

Before you configure metering and billing, you can set up a Consumer, Kong Air. [Consumers](/gateway/entities/consumer/) let you identify the client that's interacting with {{site.base_gateway}}. Later in this guide, you'll be mapping this Consumer to a customer in Metering & Billing and assigning them to a Premium plan. Doing this allows you map existing Consumers that are already consuming your APIs to customers to make them billable.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you'll be mapping this Consumer to a customer in Metering & Billing

you'll be mapping this Gateway Consumer to a Metering & Billing Customer


## Enable authentication

Authentication lets you identify a Consumer so you can invoice them as customers after they've consumed the resource, in this case, the API request.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should write OpenMeter entities capital:

  • Customer
  • Meter
  • Feature
  • Plan
  • Rate Card
  • Subscription
  • Invoice

1. Click **Next**.
1. From the **Pricing model** dropdown menu, select "Usage Based".
1. In the **Price per package** field, enter `1`.
1. In the **Quantity per package** field, enter `5000`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usage-based price doesn't have a quantity. Only the packaged price has it, but we changed it to UBP.

@@ -0,0 +1,231 @@
---
title: Get started with Metering and Billing in {{site.konnect_short_name}}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Metering & Billing

@cloudjumpercat cloudjumpercat marked this pull request as ready for review December 11, 2025 22:53
@cloudjumpercat cloudjumpercat requested a review from a team as a code owner December 11, 2025 22:53
@cloudjumpercat
Copy link
Contributor Author

skipping broken links since they're fake (will be resolved in the release branch because the docs exist there)

@cloudjumpercat cloudjumpercat added the ci:manual-approve:link-validation Mark link checking as successful label Dec 12, 2025
@cloudjumpercat cloudjumpercat merged commit 57d9df8 into release/konnect-metering-and-billing Dec 12, 2025
17 of 18 checks passed
@cloudjumpercat cloudjumpercat deleted the feat/get-started-metering-billing branch December 12, 2025 00:08
Guaris added a commit that referenced this pull request Dec 17, 2025
* Feat: Konnect metering and billing Subjects (#3478)

* subjects

* add schema

* Apply suggestions from code review

* appease vale

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

---------

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* add metering and billing var

* Feat: Metering and Billing customer entity (#3540)

* subjects

* add schema

* metering customer

* Apply suggestions from code review

Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Apply suggestions from code review

* Delete two subject pages as I moved the content to the customers page

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

---------

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Feat(Metering and Billing): Product Catalog (#3561)

* product catalog

* Discounts, Product Catalog and an include

* rework product catalog page

* appease vale

* Apply suggestions from code review

* fix broken link

---------

Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Feat(Metering&Billing): Metering landing page (#3617)

* landing page

* fix urls

* icons

* Apply suggestions from code review

* Fix images and svgs

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

---------

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* feat(metering): Get Started guide (#3504)

* Start outlining the get started guide

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Finish the rough draft

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Add M&B scaffolding

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Add metering and billing to rate limit check

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Apply changes from testing

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* See if skipping product fixes build

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* appease vale

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Finishing draft, adding concept diagram and words

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Fix diagram, dev edit

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* remove colors

* Apply suggestions from code review

---------

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Co-authored-by: Angel <angel.guarisma@konghq.com>

* Feat(Metering & Billing): Billing and subscriptions (#3695)

* billing and subs

* rework billing page

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* appease vale by turning it off the tables

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Apply suggestions from code review

* Apply suggestions from code review

---------

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Fix naming variable usage, remove get started from landing page and replace with learn more

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* feat(Metering&Billing): API addition (#3711)

* api

* api action

* feat(metering): Metering reference page (#3704)

* draft metering page

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* appease vale

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Update app/metering-and-billing/metering.md

---------

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Co-authored-by: Angel <Guaris@users.noreply.github.com>

* add M&B roles

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* fix frontmatter

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* fix broken links hopefully

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* fix build issue

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* Attempt to fix icon, nav item, and color

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* apply feedback, change M&B color for top nav, remove discounts page

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* fix get started guide

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* fix customer endpoint, add get started to landing page

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>

* new metering spec (#3742)

---------

Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
Co-authored-by: Angel <Guaris@users.noreply.github.com>
Co-authored-by: Angel <angel.guarisma@konghq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:manual-approve:link-validation Mark link checking as successful

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants