From ecbdc4227ba49eca622812b7413aa877318fd7a0 Mon Sep 17 00:00:00 2001 From: Daenney Date: Mon, 5 May 2025 16:22:45 +0000 Subject: [chore] Simplify the OTEL setup (#4110) # Description This simplifies our OTEL setup by: * Getting rid of some deprecated things. * Using `autoexport` and letting things get configured by the `OTEL_` environment variables. * Removing all the unnecessary config options. ## Checklist Please put an x inside each checkbox to indicate that you've read and followed it: `[ ]` -> `[x]` If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want). - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [x] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have not leveraged AI to create the proposed changes. - [x] I/we have performed a self-review of added code. - [x] I/we have written code that is legible and maintainable by others. - [ ] I/we have commented the added code, particularly in hard-to-understand areas. - [x] I/we have made any necessary changes to documentation. - [ ] I/we have added tests that cover new code. - [x] I/we have run tests and they pass locally with the changes. - [x] I/we have run `go fmt ./...` and `golangci-lint run`. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4110 Reviewed-by: tobi Co-authored-by: Daenney Co-committed-by: Daenney --- internal/api/metrics/metrics.go | 60 ----------------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 internal/api/metrics/metrics.go (limited to 'internal/api/metrics/metrics.go') diff --git a/internal/api/metrics/metrics.go b/internal/api/metrics/metrics.go deleted file mode 100644 index 5161a3b71..000000000 --- a/internal/api/metrics/metrics.go +++ /dev/null @@ -1,60 +0,0 @@ -// GoToSocial -// Copyright (C) GoToSocial Authors admin@gotosocial.org -// SPDX-License-Identifier: AGPL-3.0-or-later -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -//go:build !nootel - -package metrics - -import ( - "net/http" - - "github.com/gin-gonic/gin" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" -) - -type Module struct { - handler http.Handler -} - -func New() *Module { - // Let prometheus use "identity", ie., no compression, - // or "gzip", to match our own gzip compression middleware. - opts := promhttp.HandlerOpts{ - OfferedCompressions: []promhttp.Compression{ - promhttp.Identity, - promhttp.Gzip, - }, - } - - // Instrument handler itself. - handler := promhttp.InstrumentMetricHandler( - prometheus.DefaultRegisterer, - promhttp.HandlerFor(prometheus.DefaultGatherer, opts), - ) - - return &Module{ - handler: handler, - } -} - -func (m *Module) Route(attachHandler func(method string, path string, f ...gin.HandlerFunc) gin.IRoutes) { - attachHandler(http.MethodGet, "", func(c *gin.Context) { - // Defer all "/metrics" handling to prom. - m.handler.ServeHTTP(c.Writer, c.Request) - }) -} -- cgit v1.2.3