open-feature / playground

OpenFeature SDK demos and experimentation
https://openfeature.dev
Apache License 2.0
50 stars 25 forks source link

Fib timings in Prometheus (or a metric backend) #51

Closed agardnerIT closed 1 year ago

agardnerIT commented 2 years ago

Just watched the demo and I like what I see! I'm thinking of a demo flow for "self-healing":

1) The app loads with our in-house (efficient) fib generator code 2) A third party vendor promises that their fib generator is better. So the new flag is toggled on via API (assuming there's an API available?) 3) We see that the timings are slower for this new generator. 4) From a seperate system, I pull the evaluation times from Prom (or backend) and decide that this implementation is taking too long 5) The seperate system somehow triggers OpenFeature (is an API available?) to change the flag value 4) My app is back to "healthy" because I'm back to my initial state.

Is this plausible?

beeme1mr commented 2 years ago

Hey @agardnerIT, yes this is theoretically possible but you would need to use the feature flag as a dimension on the metrics you're interested in. This may be easier to get with tools that allow you to query OTel traces. That would allow you to query a system on-demand and determine the impact a flag or flags had on a request.

Another way you may be able to achieve this would be by running tests from a CI system. These tests could include an identifier that could be used in the feature flag configuration to enable or disable a feature. You could then use the test results to make a decision. It could act as a quality gate that could be used in production.

The API to toggle the flag will vary depending on the provider you're using but nearly every tool I've worked with will allow you to do what you're describing.