telegraf: An open-source, plugin-driven server agent for collecting & reporting metrics

This commit is contained in:
Bill Welliver 2019-01-25 21:35:18 -05:00
parent 5272958209
commit b2e9bad02c
8 changed files with 213 additions and 0 deletions

1
telegraf/DESCR Normal file
View File

@ -0,0 +1 @@
telegraf: An open-source, plugin-driven server agent for collecting & reporting metrics

115
telegraf/Makefile Normal file
View File

@ -0,0 +1,115 @@
# $NetBSD$
GITHUB_PROJECT= telegraf
PKGVERSION_NOREV= 1.9.2
DISTNAME= telegraf-1.9.2
GITHUB_TAG= ${PKGVERSION_NOREV}
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_GITHUB:=influxdata/}
MAINTAINER= william@welliver.org
HOMEPAGE= https://www.influxdata.com/
COMMENT= Plugin-driven server agent for collecting & reporting metrics
LICENSE= mit
# despite being the default value, this explicit declaration is required for things
# to build properly.
EXTRACT_SUFX= .tar.gz
TELEGRAF_DEPENDENCIES_DIR= telegraf-dependencies-${PKGVERSION_NOREV}
TELEGRAF_DEPENDENCIES= ${TELEGRAF_DEPENDENCIES_DIR}${EXTRACT_SUFX}
TELEGRAF_DISTNAME= ${DISTNAME}${EXTRACT_SUFX}
DISTFILES= ${TELEGRAF_DISTNAME}
.if !defined(BOOTSTRAP)
DISTFILES+= ${TELEGRAF_DEPENDENCIES}
SITES.${TELEGRAF_DEPENDENCIES}= https://bitbucket.org/hww3/influxdb/downloads/
.endif
USE_TOOLS+= gmake curl
BUILD_DEPENDS+= go110-1.10.*:../../lang/go110
# go language executables don't have SSP support
CHECK_SSP_SKIP= bin/*
PKGSRC_MAKE_ENV+= GOPATH=${WRKDIR}
PKG_SYSCONFSUBDIR= telegraf
DATADIR= ${VARBASE}/lib/telegraf
LOGDIR= ${VARBASE}/log/telegraf
BUILD_DEFS+= TELEGRAF_USER TELEGRAF_GROUP VARBASE
FILES_SUBST+= TELEGRAF_USER=${TELEGRAF_USER:Q}
FILES_SUBST+= TELEGRAF_GROUP=${TELEGRAF_GROUP:Q}
FILES_SUBST+= DATADIR=${DATADIR:Q}
FILES_SUBST+= LOGDIR=${LOGDIR:Q}
TELEGRAF_USER?= telegraf
TELEGRAF_GROUP?= telegraf
OWN_DIRS_PERMS+= ${DATADIR} ${TELEGRAF_USER} ${TELEGRAF_GROUP} 0700
OWN_DIRS_PERMS+= ${LOGDIR} ${TELEGRAF_USER} ${TELEGRAF_GROUP} 0700
PKG_USERS_VARS+= TELEGRAF_USER
PKG_GROUPS_VARS+= TELEGRAF_GROUP
PKG_GROUPS= ${TELEGRAF_GROUP}
PKG_USERS= ${TELEGRAF_USER}:${TELEGRAF_GROUP}
RCD_SCRIPTS= telegraf
INSTALLATION_DIRS+= bin etc/telegraf etc/logrotate.d share/doc/telegraf share/examples/telegraf share/examples/telegraf/logrotate.d
DOC_FILES+= LICENSE README.md CHANGELOG.md
BIN_FILES+= telegraf
CONF_FILES+= ${PREFIX}/share/examples/${PKGBASE}/telegraf.conf ${PKG_SYSCONFDIR}/telegraf.conf
CONF_FILES+= ${PREFIX}/share/examples/${PKGBASE}/logrotate.d/telegraf ${PKG_SYSCONFDIR}/../logrotate.d/telegraf
WRKSRC= ${WRKDIR}/src/github.com/influxdata/telegraf
GO_BIN= ${PREFIX}/go110/bin/go
# TODO: figure out how to properly depend on the extract target
# fetch the additional dependencies that telegraf requires to compile and prepare a tarball containing them for use later.
.PHONY: _fetch_dependencies
_fetch_dependencies: extract
cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${GO_BIN} get -u github.com/golang/dep/cmd/dep
cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${GO_BIN} install github.com/golang/dep/cmd/dep
cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${WRKDIR}/bin/dep ensure -vendor-only
cd ${WRKSRC}/vendor && ${SETENV} ${PKGSRC_MAKE_ENV} find . -type d -name \.git -exec rm -rf {} \;
cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} tar czvf ${TELEGRAF_DEPENDENCIES} vendor
cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} mv ${TELEGRAF_DEPENDENCIES} /data/pkgsrc/wip/telegraf
# upload the dependency tarball somewhere that others can access.
# this should probably be someplace more "official".
.PHONY: _upload_dependencies
_upload_dependencies: _fetch_dependencies
curl -u $$BITBUCKET_USERNAME:$$BITBUCKET_PASSWORD -s -X POST https://api.bitbucket.org/2.0/repositories/$$BITBUCKET_USERNAME/influxdb/downloads -F files=@${TELEGRAF_DEPENDENCIES}
# we should probably guard this code to make sure it's not done twice.
pre-extract:
${MKDIR} ${WRKDIR}/src/github.com/influxdata/
post-extract:
ls -l ${WRKDIR}
${MV} ${WRKDIR}/${DISTNAME} ${WRKSRC}
.if !defined(BOOTSTRAP)
${MV} ${WRKDIR}/vendor ${WRKSRC}/
.endif
do-build:
cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${GO_BIN} get -ldflags "-X main.version=${PKGVERSION_NOREV} -X main.commit=${GITHUB_TAG} -X main.buildstamp=pkgsrc" ./...
cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${GO_BIN} install ./...
do-install:
.for idir in ${INSTALLATION_DIRS}
${MKDIR} ${DESTDIR}${PREFIX}/${idir}
.endfor
.for x in ${BIN_FILES}
${INSTALL} ${WRKDIR}/bin/${x} \
${DESTDIR}${PREFIX}/bin/${x}
.endfor
.for x in ${DOC_FILES}
${INSTALL_DATA} ${WRKSRC}/${x} \
${DESTDIR}${PREFIX}/share/doc/telegraf/${x}
.endfor
${INSTALL_DATA} ${WRKSRC}/etc/telegraf.conf ${DESTDIR}${PREFIX}/share/examples/${PKGBASE}/
${INSTALL_DATA} ${WRKSRC}/etc/logrotate.d/telegraf ${DESTDIR}${PREFIX}/share/examples/${PKGBASE}/logrotate.d/telegraf
#.include "../../lang/go19/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

9
telegraf/PLIST Normal file
View File

@ -0,0 +1,9 @@
@comment $NetBSD$
bin/telegraf
share/doc/telegraf/CHANGELOG.md
share/doc/telegraf/LICENSE
share/doc/telegraf/README.md
share/examples/telegraf/logrotate.d/telegraf
share/examples/telegraf/telegraf.conf
@pkgdir etc/telegraf
@pkgdir etc/logrotate.d

12
telegraf/distinfo Normal file
View File

@ -0,0 +1,12 @@
$NetBSD$
SHA1 (telegraf-1.9.2.tar.gz) = 756136e5439953e84ae072a008d8404418af8f4c
RMD160 (telegraf-1.9.2.tar.gz) = dd1c8c8265aaf87022d35b2b585b817c0cdb601a
SHA512 (telegraf-1.9.2.tar.gz) = 2787d564f95108acce48341911c8f4298233f3d31b00c4d3eba07bcaef6bded8dcc6b0741acdc1ade600bfd09878b04fba576099415d690465e90088fdcec13f
Size (telegraf-1.9.2.tar.gz) = 1279918 bytes
SHA1 (telegraf-dependencies-1.9.2.tar.gz) = dc375e7b2bc0837fcc538f352a35d2f1ede60481
RMD160 (telegraf-dependencies-1.9.2.tar.gz) = ebe1157aadbdf9e3be8e1e01445cb0e9d59f5dcd
SHA512 (telegraf-dependencies-1.9.2.tar.gz) = 021815c69c21d5e3f5430735233bc0a7e2cc6a1d73c9ad9cea1efc69f1a2026a0859f94ccb53b511ff82e322066c54b9df2ed9401a273e15dd23ce19a33c5edc
Size (telegraf-dependencies-1.9.2.tar.gz) = 66435980 bytes
SHA1 (patch-docker_docker_client_unix.go) = 19f354d83e187aff18f09fc1d2088e65524214ef
SHA1 (patch-vendor_github.com_docker_docker_hack_dockerfile_install_containerd.installer) = edd27e8d070b61ae4e83dc83463c5bdab9ceaa98

View File

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type='manifest' name='@SMF_NAME@:default'>
<service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
<create_default_instance enabled='false' />
<single_instance />
<dependency name='network' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/milestone/network:default' />
</dependency>
<dependency name='fs-local' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local:default' />
</dependency>
<method_context working_directory="@DATADIR@">
<method_credential user='@TELEGRAF_USER@' group='@TELEGRAF_GROUP@' />
</method_context>
<exec_method type='method' name='start'
exec='@PREFIX@/bin/telegraf --config @PKG_SYSCONFDIR@/telegraf.conf --pidfile @DATADIR@/telegraf.pid 2>> @LOGDIR@/telegraf.log &amp;'
timeout_seconds="60" />
<exec_method type='method' name='stop' exec=':kill' timeout_seconds="60" />
<template>
<common_name>
<loctext xml:lang='C'>InfluxDB Time Series database</loctext>
</common_name>
<documentation>
<manpage title='telegraf' section='1' manpath='/@PREFIX@/man' />
<doc_link name='homepage' uri='https://docs.influxdata.com/telegraf/' />
</documentation>
</template>
</service>
</service_bundle>

View File

@ -0,0 +1,23 @@
#!@RCD_SCRIPTS_SHELL@
# PROVIDE: telegraf
# REQUIRE: DAEMON
# KEYWORD: shutdown
if [ -f /etc/rc.subr ]
then
. /etc/rc.subr
fi
name="telegraf"
rcvar=$name
influxdb_user="@TELEGRAF_USER@"
influxdb_group="@TELEGRAF_GROUP@"
influxdb_chdir="@VARBASE@/lib/telegraf"
pidfile="@VARBASE@/lib/telegraf/data/telegraf.pid"
STDERR="@LOGDIR@/telegraf.log"
command="@PREFIX@/bin/telegraf"
command_args="--config @PREFIX@/etc/telegraf/telegraf.conf --pidfile ${pidfile} 1>/dev/null 2>> $STDERR &"
load_rc_config $name
run_rc_command "$1"

View File

@ -0,0 +1,10 @@
$NetBSD$
Docker broke building their client on solaris
--- vendor/github.com/docker/docker/client/client_unix.go.orig 2019-01-16 23:06:36.532171754 +0000
+++ vendor/github.com/docker/docker/client/client_unix.go
@@ -1,4 +1,4 @@
-// +build linux freebsd openbsd darwin
+// +build linux freebsd openbsd darwin solaris
package client // import "github.com/docker/docker/client"

View File

@ -0,0 +1,13 @@
$NetBSD$
Fix a bashism
--- vendor/github.com/docker/docker/hack/dockerfile/install/containerd.installer.orig 2019-01-17 03:38:47.000000000 +0000
+++ vendor/github.com/docker/docker/hack/dockerfile/install/containerd.installer
@@ -19,7 +19,7 @@ install_containerd() {
export EXTRA_LDFLAGS='-extldflags "-fno-PIC -static"'
# Reset build flags to nothing if we want a dynbinary
- if [ "$1" == "dynamic" ]; then
+ if [ "$1" = "dynamic" ]; then
export BUILDTAGS=''
export EXTRA_FLAGS=''
export EXTRA_LDFLAGS=''