OAI / OpenAPI-Specification

The OpenAPI Specification Repository
https://openapis.org
Apache License 2.0
29.11k stars 9.08k forks source link

Adding optional SLA definitions with the Spec #541

Open pjmolina opened 8 years ago

pjmolina commented 8 years ago

Related to #51

We have identified in the market a need for measuring and enforcement SLA in APIs. Specially, API vendors would benefit from an standard import of SLA metrics to measure and track importing them along with the OpenAPI definition in an standard way.

In this line, we have started a R&D project by Icinetic and the University of Seville at Spain to work on: "Extension on OpenAPI for the definition of Service Level Agreements (SLA)".

The project is looking forward to:

  1. Setup a basic and optional profile extension to describe a set of plan prices over APIs, Quota enforcement policies, constraints, etc.
  2. This information can (always optionally) decorate the OpenAPI spec inline on in a side file/resource linked from the main spec.
  3. Third party tools like Hivepod: can generate both: Swagger spec, service implementation, and SLA policy + SLA enforcement code, data repository to store the metrics and tools for analysis
  4. Third party tools like API Management tools can use this SLA info also to measure and track the level of compliant with respect this SLA specified.
  5. The ISA Research Group in the University of Seville is looking forward to provide tools for validation, creation and verification of SLAs for free.
  6. We will provide a reference implementation showing the full scenario: from sample Microservice being measured, using a data store to gather metrics and an analysis tool to visualize the SLA grade of compliance.
  7. Eventually, we would love to contribute to OAI (next version) with an open source extension for SLA definition.

Looking forward for early feedback and to join forces with OAI wanting to support an extension for this in an standardized way.

webron commented 8 years ago

Thanks for the information. We've explicitly chose to exclude support for 2.0, though there are a few ideas to be taken into account for the next version. We'll take your work under consideration.

discordianfish commented 8 years ago

I'm currently working on adding SLA definitions to our swagger definition and would be very interested in taking that and turning it into prometheus alerting definition. Happy to test-drive whatever you come up with.

pjmolina commented 8 years ago

Excellent @discordianfish ! Anyone interested write me an email to pjmolina (at) icinetic.com and I will share with you our initial draft material.

fehguy commented 8 years ago

Parent issue #560

fehguy commented 8 years ago

@discordianfish @pjmolina if you have examples of how this would look, please feel free to share it.

earth2marsh commented 8 years ago

Seems like a great use of an x-extension, and if that gets traction, it should be considered in a future version.

jcarres-mdsol commented 7 years ago

@webron I can't see anything related to this in the 3.0 spec. Will this still be addressed with custom extensions?

webron commented 7 years ago

@jcarres-mdsol It won't be addressed in 3.0 directly or indirectly, we didn't get a chance to discuss it.

jcarres-mdsol commented 7 years ago

Thank you for the response. Then I'll go for an extension. Thanks for replying so fast

vtolstov commented 4 years ago

any progress?

pjmolina commented 4 years ago

Hi @vtolstov Yes: working on it here: https://github.com/isa-group/SLA4OAI-TC/blob/master/specs/index.md Feel free to join or add yout ideas to push it forward.

vtolstov commented 4 years ago

@pjmolina hi! thanks for answer. I'm try to solve problem from other side - i have go micro framework that based on proto generates handlers for client and server. And our analytics team want to specify timeout for handlers based on SLA and understanding how much time needs each handler to process. And based on this proto i'm generate swagger/openapi spec to publish