Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FinOps Open Cost & Usage Specification Support #284

Open
1 task done
kbespalov opened this issue Sep 30, 2023 · 1 comment
Open
1 task done

FinOps Open Cost & Usage Specification Support #284

kbespalov opened this issue Sep 30, 2023 · 1 comment
Assignees
Labels
area/api kind/feature New feature or request

Comments

@kbespalov
Copy link

Preflight Checklist

  • I have searched the issue tracker for an issue that matches the one I want to file, without success.

Problem Description

At the moment we use CloudEvent (https://cloudevents.io/) to define OpenMeter ingesting API specification.

{
  "specversion": "1.0",
  "type": "api-calls",
  "id": "00001",
  "time": "2023-01-01T00:00:00.001Z",
  "source": "service-0",
  "subject": "customer-1",
  "data": {
    "duration": "12",
    "path": "/hello"
  }
}

The result of any metering system is costs&usage reports. One of the important use-cases of report usage is data exporting.

There are two goals of data exports:

  1. Integration (accounting/payment systems). A scenario in which reports are exported from OpenMeter to target systems such as Stripe, Paypal, OEBS, NetSuite, etc. In this case, each system has its own data format, and standardization is impossible.

  2. FinOps Observability (datalakes, dwh). In this scenario, data is typically uploaded to customer's S3 in a specific format at a specific frequency. Then transferred by customers into company-wide DWH/Data Lake. This practice is presented, for example, in all top cloud providers such as GCP, AWS, Azure and some SaaS services.

So, we use CloudEvent CNCF specification for OpenMeter as input at Ingesting API. Probably we should consider FOCUS (FinOps Open Cost & Usage Specification) as OpenMeter output at Reports Exporting API.

Proposed Solution

  1. Research CNCF proposed specification - https://focus.finops.org/
  2. Add this format as an option in planned S3 exports API if that makes sense

Alternatives Considered

No response

Additional Information

No response

@tothandras tothandras added kind/feature New feature or request area/api labels Oct 3, 2023
@hekike
Copy link
Contributor

hekike commented Oct 3, 2023

@kbespalov this is a great idea; thank you for the detailed path forward. I think OpenMeter can play a significant role in providing usage for cloud cost analysis if we support FOCUS as you highlighted above.

We are following FinOps FOCUS conversations and are mainly waiting for 1.0.0 to see what dimensions will be required. One challenge with FOCUS is that it currently has required non-nullable dimensions like Region, Service Category, and Service Name. These can be static values but we need to collect them somehow, wondering if we should ask them in OpenMeter config.yaml as global config or per meter config or make it required to pass in the FOCUS output API.
What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api kind/feature New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants