| 860 | } |
| 861 | |
| 862 | func TestBuildInfo(t *testing.T) { |
| 863 | t.Parallel() |
| 864 | |
| 865 | reg := prometheus.NewRegistry() |
| 866 | version := "v2.15.0+abc1234" |
| 867 | revision := "abc1234def5678" |
| 868 | |
| 869 | require.NoError(t, prometheusmetrics.BuildInfo(reg, version, revision)) |
| 870 | |
| 871 | out, err := reg.Gather() |
| 872 | require.NoError(t, err) |
| 873 | require.Len(t, out, 1) |
| 874 | require.Equal(t, "coderd_build_info", out[0].GetName()) |
| 875 | |
| 876 | metrics := out[0].GetMetric() |
| 877 | require.Len(t, metrics, 1) |
| 878 | |
| 879 | // Labels are sorted alphabetically by Prometheus. |
| 880 | labels := metrics[0].GetLabel() |
| 881 | require.Len(t, labels, 2) |
| 882 | require.Equal(t, "revision", labels[0].GetName()) |
| 883 | require.Equal(t, revision, labels[0].GetValue()) |
| 884 | require.Equal(t, "version", labels[1].GetName()) |
| 885 | require.Equal(t, version, labels[1].GetValue()) |
| 886 | require.Equal(t, float64(1), metrics[0].GetGauge().GetValue()) |
| 887 | } |
| 888 | |
| 889 | func prepareWorkspaceAndAgent(ctx context.Context, t *testing.T, client *codersdk.Client, user codersdk.CreateFirstUserResponse, workspaceNum int) agentproto.DRPCAgentClient { |
| 890 | authToken := uuid.NewString() |