Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Jan 2025 06:55:29 GMT
From:      "Vanilla I. Shu" <vanilla@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 6797c5bb6641 - main - sysutils/tempo: add new port.
Message-ID:  <202501050655.5056tTJi060055@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by vanilla:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6797c5bb6641a498e7245172189c307a4c7c543b

commit 6797c5bb6641a498e7245172189c307a4c7c543b
Author:     Vanilla I. Shu <vanilla@FreeBSD.org>
AuthorDate: 2025-01-05 06:54:19 +0000
Commit:     Vanilla I. Shu <vanilla@FreeBSD.org>
CommitDate: 2025-01-05 06:55:03 +0000

    sysutils/tempo: add new port.
    
    PR:             283803
    Reported by:    Daniel Morante <daniel at morante.net>
---
 GIDs                                               |  2 +-
 UIDs                                               |  2 +-
 sysutils/Makefile                                  |  1 +
 sysutils/tempo/Makefile                            | 53 ++++++++++++++++
 sysutils/tempo/distinfo                            |  5 ++
 .../patch-example_docker-compose_shared_tempo.yaml | 30 +++++++++
 sysutils/tempo/files/tempo.in                      | 71 ++++++++++++++++++++++
 sysutils/tempo/pkg-descr                           |  3 +
 sysutils/tempo/pkg-plist                           | 12 ++++
 9 files changed, 177 insertions(+), 2 deletions(-)

diff --git a/GIDs b/GIDs
index 5256462db79e..81a5275cc3c2 100644
--- a/GIDs
+++ b/GIDs
@@ -289,7 +289,7 @@ _metronome:*:345:
 ngircd:*:346:
 eturnal:*:347:
 davfs2:*:348:
-# free: 349
+tempo:*:349:
 _sabnzbd:*:350:
 sonarr:*:351:
 radarr:*:352:
diff --git a/UIDs b/UIDs
index 7b7b343fc60f..f79658aa4f96 100644
--- a/UIDs
+++ b/UIDs
@@ -295,7 +295,7 @@ _metronome:*:345:345::0:0:Metronome Daemon:/nonexistent:/usr/sbin/nologin
 ngircd:*:346:346::0:0:ngIRCd Daemon:/var/empty:/usr/sbin/nologin
 eturnal:*:347:347::0:0:eturnal User:/var/spool/eturnal:/bin/sh
 davfs2:*:348:348::0:0:Davfs2 Daemon:/nonexistent:/usr/sbin/nologin
-# free: 349
+tempo:*:349:349::0:0:Tempo Daemon:/nonexistent:/usr/sbin/nologin
 _sabnzbd:*:350:350::0:0:sabnzb Daemon:/nonexistent:/usr/sbin/nologin
 sonarr:*:351:351::0:0:Sonarr PVR:/nonexistent:/usr/sbin/nologin
 radarr:*:352:352::0:0:Radarr Daemon:/nonexistent:/usr/sbin/nologin
diff --git a/sysutils/Makefile b/sysutils/Makefile
index b89b447a4946..305e8eb4e844 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1363,6 +1363,7 @@
     SUBDIR += tcplist
     SUBDIR += tdir
     SUBDIR += tealdeer
+    SUBDIR += tempo
     SUBDIR += tenshi
     SUBDIR += tere
     SUBDIR += terraform
diff --git a/sysutils/tempo/Makefile b/sysutils/tempo/Makefile
new file mode 100644
index 000000000000..1ff162aa61b0
--- /dev/null
+++ b/sysutils/tempo/Makefile
@@ -0,0 +1,53 @@
+PORTNAME=	tempo
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.6.1
+CATEGORIES=	sysutils
+MASTER_SITES+=	https://raw.githubusercontent.com/${GH_ACCOUNT}/${PORTNAME}/${DISTVERSIONFULL}/
+PKGNAMEPREFIX=	grafana-
+DISTFILES=	go.mod
+
+MAINTAINER=	daniel@morante.net
+COMMENT=	High volume, minimal dependency distributed tracing backend
+WWW=		https://github.com/grafana/tempo
+
+LICENSE=	AGPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		go:modules
+USE_GITHUB=	yes
+GH_ACCOUNT=	grafana
+GH_PROJECT=	tempo
+
+USE_RC_SUBR=	tempo
+
+GO_MODULE=	github.com/${GH_ACCOUNT}/${GH_PROJECT}
+GO_TARGET=	./cmd/tempo ./cmd/tempo-query ./cmd/tempo-cli ./cmd/tempo-vulture
+GO_BUILDFLAGS=	-v -ldflags "${LD_FLAG_STRING}"
+
+LD_FLAG_STRING=	-s \
+		${LD_FLAG_X_PREFIX}.Version=${PORTVERSION} \
+		${LD_FLAG_X_PREFIX}.Revision=${PORTREVISION} \
+		${LD_FLAG_X_PREFIX}.Branch=HEAD \
+		${LD_FLAG_X_PREFIX}.BuildUser=${BUILD_USER} \
+		${LD_FLAG_X_PREFIX}.BuildDate=$$(date -u +"%Y-%m-%dT%H:%M:%SZ")
+LD_FLAG_X_PREFIX=	-X github.com/grafana/tempo/pkg/util/build
+BUILD_USER?=	${USER}
+
+TEMPO_USER?=	tempo
+TEMPO_GROUP?=	tempo
+TEMPO_DATADIR?=	/var/db/${PORTNAME}
+
+SUB_LIST=	TEMPO_USER=${TEMPO_USER} \
+		TEMPO_GROUP=${TEMPO_GROUP} \
+		TEMPO_DATADIR=${TEMPO_DATADIR} \
+
+USERS=		${TEMPO_USER}
+GROUPS=		${TEMPO_GROUP}
+
+PLIST_SUB=	${SUB_LIST}
+
+post-install:
+	@${CP} ${WRKSRC}/example/docker-compose/shared/tempo.yaml ${STAGEDIR}${PREFIX}/etc/tempo.yaml.sample
+	@${MKDIR} ${STAGEDIR}${TEMPO_DATADIR}
+
+.include <bsd.port.mk>
diff --git a/sysutils/tempo/distinfo b/sysutils/tempo/distinfo
new file mode 100644
index 000000000000..51d3059d3285
--- /dev/null
+++ b/sysutils/tempo/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1735843421
+SHA256 (go/sysutils_tempo/grafana-tempo-v2.6.1_GH0/go.mod) = 16764341886c2531d9cbba50cbbc30c80676a2010c494cfed439b1f80c89b61e
+SIZE (go/sysutils_tempo/grafana-tempo-v2.6.1_GH0/go.mod) = 17886
+SHA256 (go/sysutils_tempo/grafana-tempo-v2.6.1_GH0/grafana-tempo-v2.6.1_GH0.tar.gz) = ff53e3eb7ed70e378b06a70295677d4f05d40554b33b8bd91d5c351c18d3b55f
+SIZE (go/sysutils_tempo/grafana-tempo-v2.6.1_GH0/grafana-tempo-v2.6.1_GH0.tar.gz) = 36372210
diff --git a/sysutils/tempo/files/patch-example_docker-compose_shared_tempo.yaml b/sysutils/tempo/files/patch-example_docker-compose_shared_tempo.yaml
new file mode 100644
index 000000000000..599c59d5f87a
--- /dev/null
+++ b/sysutils/tempo/files/patch-example_docker-compose_shared_tempo.yaml
@@ -0,0 +1,30 @@
+--- example/docker-compose/shared/tempo.yaml.orig	2024-10-22 18:23:02 UTC
++++ example/docker-compose/shared/tempo.yaml
+@@ -36,22 +36,22 @@ metrics_generator:
+   registry:
+     external_labels:
+       source: tempo
+-      cluster: docker-compose
++      cluster: freebsd
+   storage:
+-    path: /var/tempo/generator/wal
++    path: /var/db/tempo/generator/wal
+     remote_write:
+       - url: http://prometheus:9090/api/v1/write
+         send_exemplars: true
+   traces_storage:
+-    path: /var/tempo/generator/traces
++    path: /var/db/tempo/generator/traces
+ 
+ storage:
+   trace:
+     backend: local                     # backend configuration to use
+     wal:
+-      path: /var/tempo/wal             # where to store the wal locally
++      path: /var/db/tempo/wal             # where to store the wal locally
+     local:
+-      path: /var/tempo/blocks
++      path: /var/db/tempo/blocks
+ 
+ overrides:
+   defaults:
diff --git a/sysutils/tempo/files/tempo.in b/sysutils/tempo/files/tempo.in
new file mode 100644
index 000000000000..0182b8956280
--- /dev/null
+++ b/sysutils/tempo/files/tempo.in
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+# PROVIDE: tempo
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable tempo
+# tempo_enable="YES"
+#
+# tempo_enable (bool):
+#     Set it to YES to enable grafana
+#     Set to NO by default
+# tempo_user (string):
+#     Set user that grafana will run under
+#     Default is "%%tempo_USER%%"
+# tempo_group (string):
+#     Set group that own grafana files
+#     Default is "%%tempo_GROUP%%"
+# tempo_config (string)
+#     Set full path to config file
+#     Default is "%%PREFIX%%/etc/tempo.yaml"
+# tempo_logfile (string)
+#     Set full path to log file
+#     Default is "/var/log/tempo/tempo.log"
+# tempo_loglevel (string)
+#     Set log level. Only log messages with the given severity or above.
+#     Valid levels: [debug, info, warn, error]
+#     Default is "warn"
+# tempo_args (string)
+#     Set additional command line arguments
+#     Default is ""
+
+. /etc/rc.subr
+
+name=tempo
+rcvar=tempo_enable
+
+load_rc_config $name
+
+: ${tempo_enable:="NO"}
+: ${tempo_user:="%%TEMPO_USER%%"}
+: ${tempo_group:="%%TEMPO_GROUP%%"}
+: ${tempo_config:="%%PREFIX%%/etc/tempo.yaml"}
+: ${tempo_logfile:="/var/log/tempo/tempo.log"}
+: ${tempo_loglevel:="warn"}
+
+pidfile="/var/run/${name}/${name}.pid"
+required_files="${tempo_config}"
+
+procname="%%PREFIX%%/bin/tempo"
+command="/usr/sbin/daemon"
+command_args="-p ${pidfile} -t ${name} -o ${tempo_logfile} \
+	${procname} \
+	-config.file=${tempo_config} \
+	-log.level=${tempo_loglevel} \
+	${tempo_args}"
+
+start_precmd="tempo_start_precmd"
+
+tempo_start_precmd()
+{
+	if [ ! -d "/var/run/${name}" ]; then
+		install -d -m 0750 -o ${tempo_user} -g ${tempo_group} "/var/run/${name}"
+	fi
+
+	if [ ! -d "/var/log/tempo" ]; then
+		install -d -m 0750 -o ${tempo_user} -g ${tempo_group} "/var/log/tempo"
+	fi
+}
+
+run_rc_command "$1"
diff --git a/sysutils/tempo/pkg-descr b/sysutils/tempo/pkg-descr
new file mode 100644
index 000000000000..f13b3fdd9b17
--- /dev/null
+++ b/sysutils/tempo/pkg-descr
@@ -0,0 +1,3 @@
+Grafana Tempo is an open source, easy-to-use and high-scale distributed tracing
+backend. Tempo is cost-efficient, requiring only object storage to operate, and
+is deeply integrated with Grafana, Prometheus, and Loki.
diff --git a/sysutils/tempo/pkg-plist b/sysutils/tempo/pkg-plist
new file mode 100644
index 000000000000..1894892a2746
--- /dev/null
+++ b/sysutils/tempo/pkg-plist
@@ -0,0 +1,12 @@
+bin/tempo
+bin/tempo-query
+bin/tempo-cli
+bin/tempo-vulture
+@sample etc/tempo.yaml.sample
+@owner %%TEMPO_USER%%
+@group %%TEMPO_GROUP%%
+@mode 750
+@dir %%TEMPO_DATADIR%%
+@mode
+@group
+@owner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202501050655.5056tTJi060055>