diff --git a/Makefile b/Makefile index 80de589b1..d01b927c1 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ VERSION_MINOR:=$(shell grep 'VERSION' pkg/version/version.go | awk '{ print $$4 PATCH:=$(shell grep 'VERSION' pkg/version/version.go | awk '{ print $$4 }' | tr -d '"' | awk -F. '{print $$NF}') SOURCE_DIRS = cmd pkg/apis pkg/controller pkg/server pkg/logging pkg/version run: - go run -race cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -metrics-server=https://prometheus.istio.weavedx.com + go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -metrics-server=https://prometheus.iowa.weavedx.com build: docker build -t stefanprodan/flagger:$(TAG) . -f Dockerfile diff --git a/README.md b/README.md index 97aeb17c4..e3377f1dd 100644 --- a/README.md +++ b/README.md @@ -333,13 +333,22 @@ Promotion completed! podinfo.test Flagger exposes Prometheus metrics that can be used to determine the canary analysis status and the destination weight values: ```bash -# Canary status +# Canaries total gauge +flagger_canary_total{namespace="test"} 1 + +# Canary promotion last known status gauge # 0 - running, 1 - successful, 2 - failed flagger_canary_status{name="podinfo" namespace="test"} 1 -# Canary traffic weight +# Canary traffic weight gauge flagger_canary_weight{workload="podinfo-primary" namespace="test"} 95 flagger_canary_weight{workload="podinfo" namespace="test"} 5 + +# Seconds spent performing canary analysis histogram +flagger_canary_duration_seconds_bucket{name="podinfo",namespace="test",le="10"} 6 +flagger_canary_duration_seconds_bucket{name="podinfo",namespace="test",le="+Inf"} 6 +flagger_canary_duration_seconds_sum{name="podinfo",namespace="test"} 17.3561329 +flagger_canary_duration_seconds_count{name="podinfo",namespace="test"} 6 ``` ### Roadmap @@ -347,7 +356,7 @@ flagger_canary_weight{workload="podinfo" namespace="test"} 5 * Extend the canary analysis and promotion to other types than Kubernetes deployments such as Flux Helm releases or OpenFaaS functions * Extend the validation mechanism to support other metrics than HTTP success rate and latency * Add support for comparing the canary metrics to the primary ones and do the validation based on the derivation between the two -* Alerting: Trigger Alertmanager on successful or failed promotions (Prometheus instrumentation of the canary analysis) +* Alerting: trigger Alertmanager on successful or failed promotions * Reporting: publish canary analysis results to Slack/Jira/etc ### Contributing diff --git a/artifacts/flagger/deployment.yaml b/artifacts/flagger/deployment.yaml index 7893f01e7..4483191cf 100644 --- a/artifacts/flagger/deployment.yaml +++ b/artifacts/flagger/deployment.yaml @@ -22,7 +22,7 @@ spec: serviceAccountName: flagger containers: - name: flagger - image: stefanprodan/flagger:0.1.0-beta.5 + image: stefanprodan/flagger:0.1.0-beta.6 imagePullPolicy: Always ports: - name: http diff --git a/charts/flagger/Chart.yaml b/charts/flagger/Chart.yaml index 9023e9c9f..798f48281 100644 --- a/charts/flagger/Chart.yaml +++ b/charts/flagger/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: flagger version: 0.1.0 -appVersion: 0.1.0-beta.5 +appVersion: 0.1.0-beta.6 description: Flagger is a Kubernetes operator that automates the promotion of canary deployments using Istio routing for traffic shifting and Prometheus metrics for canary analysis. home: https://github.com/stefanprodan/flagger diff --git a/charts/flagger/values.yaml b/charts/flagger/values.yaml index 9bf07266a..a279e6ef0 100644 --- a/charts/flagger/values.yaml +++ b/charts/flagger/values.yaml @@ -2,7 +2,7 @@ image: repository: stefanprodan/flagger - tag: 0.1.0-beta.5 + tag: 0.1.0-beta.6 pullPolicy: IfNotPresent controlLoopInterval: "10s" diff --git a/docs/README.md b/docs/README.md index 97aeb17c4..981c13101 100644 --- a/docs/README.md +++ b/docs/README.md @@ -126,7 +126,7 @@ The canary analysis is using the following promql queries: _HTTP requests success rate percentage_ -```sql +``` sum( rate( istio_requests_total{ @@ -151,7 +151,7 @@ sum( _HTTP requests milliseconds duration P99_ -```sql +``` histogram_quantile(0.99, sum( irate( @@ -333,13 +333,22 @@ Promotion completed! podinfo.test Flagger exposes Prometheus metrics that can be used to determine the canary analysis status and the destination weight values: ```bash -# Canary status +# Canaries total gauge +flagger_canary_total{namespace="test"} 1 + +# Canary promotion last known status gauge # 0 - running, 1 - successful, 2 - failed flagger_canary_status{name="podinfo" namespace="test"} 1 -# Canary traffic weight +# Canary traffic weight gauge flagger_canary_weight{workload="podinfo-primary" namespace="test"} 95 flagger_canary_weight{workload="podinfo" namespace="test"} 5 + +# Seconds spent performing canary analysis histogram +flagger_canary_duration_seconds_bucket{name="podinfo",namespace="test",le="10"} 6 +flagger_canary_duration_seconds_bucket{name="podinfo",namespace="test",le="+Inf"} 6 +flagger_canary_duration_seconds_sum{name="podinfo",namespace="test"} 17.3561329 +flagger_canary_duration_seconds_count{name="podinfo",namespace="test"} 6 ``` ### Roadmap @@ -347,7 +356,7 @@ flagger_canary_weight{workload="podinfo" namespace="test"} 5 * Extend the canary analysis and promotion to other types than Kubernetes deployments such as Flux Helm releases or OpenFaaS functions * Extend the validation mechanism to support other metrics than HTTP success rate and latency * Add support for comparing the canary metrics to the primary ones and do the validation based on the derivation between the two -* Alerting: Trigger Alertmanager on successful or failed promotions (Prometheus instrumentation of the canary analysis) +* Alerting: trigger Alertmanager on successful or failed promotions * Reporting: publish canary analysis results to Slack/Jira/etc ### Contributing diff --git a/docs/flagger-0.1.0.tgz b/docs/flagger-0.1.0.tgz index aedcaf644..a0dbe21c2 100644 Binary files a/docs/flagger-0.1.0.tgz and b/docs/flagger-0.1.0.tgz differ diff --git a/docs/grafana-0.1.0.tgz b/docs/grafana-0.1.0.tgz index 29ecf816c..90c60f10b 100644 Binary files a/docs/grafana-0.1.0.tgz and b/docs/grafana-0.1.0.tgz differ diff --git a/docs/index.yaml b/docs/index.yaml index fc820ee71..fdb3c9049 100755 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -2,12 +2,12 @@ apiVersion: v1 entries: flagger: - apiVersion: v1 - appVersion: 0.1.0-beta.5 - created: 2018-10-29T11:26:05.917978+02:00 + appVersion: 0.1.0-beta.6 + created: 2018-10-29T21:46:00.29473+02:00 description: Flagger is a Kubernetes operator that automates the promotion of canary deployments using Istio routing for traffic shifting and Prometheus metrics for canary analysis. - digest: b9c7cee9b72e03dbef67762d464427b5379d68a9d9022d850555f3fd79b3de82 + digest: c17380b0f4e08a9b1f76a0e52d53677248c5756eff6a1fcd5629d3465dd1ad58 home: https://github.com/stefanprodan/flagger name: flagger urls: @@ -16,13 +16,13 @@ entries: grafana: - apiVersion: v1 appVersion: 5.3.1 - created: 2018-10-29T11:26:05.918435+02:00 + created: 2018-10-29T21:46:00.295247+02:00 description: A Grafana Helm chart for monitoring progressive deployments powered by Istio and Flagger - digest: a582ce7fb98b930569d10aa99d879c4280a3164b8a2ad164301d9b11d32d367d + digest: 370aa2e6a0d4ab717f047658bdb02969b8f2a4d2e81c0bc96b90e3365229715f home: https://github.com/stefanprodan/flagger name: grafana urls: - https://stefanprodan.github.io/flagger/grafana-0.1.0.tgz version: 0.1.0 -generated: 2018-10-29T11:26:05.917173+02:00 +generated: 2018-10-29T21:46:00.293821+02:00 diff --git a/pkg/version/version.go b/pkg/version/version.go index b6b3bb834..0e71de764 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -1,4 +1,4 @@ package version -var VERSION = "0.1.0-beta.5" +var VERSION = "0.1.0-beta.6" var REVISION = "unknown"