Experiments registers a metric which indicates whether each experiment is enabled or not.
(registerer prometheus.Registerer, active codersdk.Experiments)
| 632 | |
| 633 | // Experiments registers a metric which indicates whether each experiment is enabled or not. |
| 634 | func Experiments(registerer prometheus.Registerer, active codersdk.Experiments) error { |
| 635 | experimentsGauge := prometheus.NewGaugeVec(prometheus.GaugeOpts{ |
| 636 | Namespace: "coderd", |
| 637 | Name: "experiments", |
| 638 | Help: "Indicates whether each experiment is enabled (1) or not (0)", |
| 639 | }, []string{"experiment"}) |
| 640 | if err := registerer.Register(experimentsGauge); err != nil { |
| 641 | return err |
| 642 | } |
| 643 | |
| 644 | for _, exp := range codersdk.ExperimentsSafe { |
| 645 | var val float64 |
| 646 | for _, enabled := range active { |
| 647 | if exp == enabled { |
| 648 | val = 1 |
| 649 | break |
| 650 | } |
| 651 | } |
| 652 | |
| 653 | experimentsGauge.WithLabelValues(string(exp)).Set(val) |
| 654 | } |
| 655 | |
| 656 | return nil |
| 657 | } |
| 658 | |
| 659 | // BuildInfo registers a gauge which is always set to 1, with labels |
| 660 | // describing the running server version. This follows the common |