# Generated by go2rpm # Too many missing plugins for test to run # At least: # - output: kafka # - input: kafka kafka_consumer_legacy elasticsearch %bcond_with check # https://github.com/influxdata/telegraf %global goipath github.com/influxdata/telegraf Version: 1.13.4 %global tag 1.13.4 %gometa Name: telegraf Release: 1%{?dist} Summary: Plugin-driven server agent for collecting & reporting metrics License: MIT URL: %{gourl} Source0: %{gosource} Patch0: telegraf-1.13.3-Fix_appinsights_path.patch %if 0%{?fedora} BuildRequires: systemd-rpm-macros %else BuildRequires: systemd %endif #%%generate_buildrequires #%%go_generate_buildrequires BuildRequires: golang(cloud.google.com/go/monitoring/apiv3) BuildRequires: golang(cloud.google.com/go/pubsub) BuildRequires: golang(collectd.org/api) BuildRequires: golang(collectd.org/network) BuildRequires: golang(github.com/aerospike/aerospike-client-go) BuildRequires: golang(github.com/alecthomas/units) BuildRequires: golang(github.com/amir/raidman) BuildRequires: golang(github.com/apache/thrift/lib/go/thrift) BuildRequires: golang(github.com/aws/aws-sdk-go/aws) BuildRequires: golang(github.com/aws/aws-sdk-go/aws/client) BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials) BuildRequires: golang(github.com/aws/aws-sdk-go/aws/credentials/stscreds) BuildRequires: golang(github.com/aws/aws-sdk-go/aws/session) BuildRequires: golang(github.com/aws/aws-sdk-go/service/cloudwatch) BuildRequires: golang(github.com/aws/aws-sdk-go/service/dynamodb) BuildRequires: golang(github.com/aws/aws-sdk-go/service/kinesis) BuildRequires: golang(github.com/Azure/azure-storage-queue-go/azqueue) BuildRequires: golang(github.com/Azure/go-autorest/autorest) BuildRequires: golang(github.com/Azure/go-autorest/autorest/azure/auth) BuildRequires: golang(github.com/bsm/sarama-cluster) BuildRequires: golang(github.com/cisco-ie/nx-telemetry-proto/mdt_dialout) BuildRequires: golang(github.com/cisco-ie/nx-telemetry-proto/telemetry_bis) # Breaks couchbase input plugin #BuildRequires: golang(github.com/couchbase/go-couchbase) BuildRequires: golang(github.com/denisenkom/go-mssqldb) BuildRequires: golang(github.com/dgrijalva/jwt-go) BuildRequires: golang(github.com/docker/docker/api/types) BuildRequires: golang(github.com/docker/docker/api/types/container) BuildRequires: golang(github.com/docker/docker/api/types/filters) BuildRequires: golang(github.com/docker/docker/api/types/registry) BuildRequires: golang(github.com/docker/docker/api/types/swarm) BuildRequires: golang(github.com/docker/docker/client) BuildRequires: golang(github.com/docker/libnetwork/ipvs) # https://bugzilla.redhat.com/show_bug.cgi?id=1797117 BuildRequires: golang(github.com/eclipse/paho.mqtt.golang) BuildRequires: golang(github.com/ericchiang/k8s) BuildRequires: golang(github.com/ericchiang/k8s/apis/apps/v1beta1) BuildRequires: golang(github.com/ericchiang/k8s/apis/apps/v1beta2) BuildRequires: golang(github.com/ericchiang/k8s/apis/core/v1) BuildRequires: golang(github.com/ghodss/yaml) BuildRequires: golang(github.com/glinton/ping) BuildRequires: golang(github.com/go-logfmt/logfmt) BuildRequires: golang(github.com/go-redis/redis) BuildRequires: golang(github.com/go-sql-driver/mysql) BuildRequires: golang(github.com/gobwas/glob) BuildRequires: golang(github.com/golang/protobuf/proto) BuildRequires: golang(github.com/golang/protobuf/ptypes/duration) BuildRequires: golang(github.com/golang/protobuf/ptypes/timestamp) BuildRequires: golang(github.com/google/go-cmp/cmp) BuildRequires: golang(github.com/google/go-cmp/cmp/cmpopts) BuildRequires: golang(github.com/google/go-github/github) BuildRequires: golang(github.com/gorilla/mux) # Breaks kinesis_consumer input plugins #BuildRequires: golang(github.com/harlow/kinesis-consumer) #BuildRequires: golang(github.com/harlow/kinesis-consumer/checkpoint/ddb) BuildRequires: golang(github.com/hashicorp/consul/api) # Breaks syslog input and output plugins #BuildRequires: golang(github.com/influxdata/go-syslog) #BuildRequires: golang(github.com/influxdata/go-syslog/nontransparent) #BuildRequires: golang(github.com/influxdata/go-syslog/octetcounting) #BuildRequires: golang(github.com/influxdata/go-syslog/rfc5424) # Breaks logparser and tail input plugins #BuildRequires: golang(github.com/influxdata/tail) BuildRequires: golang(github.com/influxdata/toml) BuildRequires: golang(github.com/influxdata/toml/ast) BuildRequires: golang(github.com/influxdata/wlog) BuildRequires: golang(github.com/jackc/pgx) BuildRequires: golang(github.com/jackc/pgx/pgtype) BuildRequires: golang(github.com/jackc/pgx/stdlib) BuildRequires: golang(github.com/kardianos/service) BuildRequires: golang(github.com/karrick/godirwalk) BuildRequires: golang(github.com/kballard/go-shellquote) # Breaks kube_inventory input plugin #BuildRequires: golang(github.com/kubernetes/apimachinery/pkg/api/resource) BuildRequires: golang(github.com/matttproud/golang_protobuf_extensions/pbutil) BuildRequires: golang(github.com/mdlayher/apcupsd) BuildRequires: golang(github.com/microsoft/ApplicationInsights-Go/appinsights) BuildRequires: golang(github.com/miekg/dns) BuildRequires: golang(github.com/multiplay/go-ts3) BuildRequires: golang(github.com/nats-io/gnatsd/server) BuildRequires: golang(github.com/nats-io/go-nats) BuildRequires: golang(github.com/nsqio/go-nsq) # Breaks cisco_telemetry_gnmi input plugin #BuildRequires: golang(github.com/openconfig/gnmi/proto/gnmi) BuildRequires: golang(github.com/openzipkin/zipkin-go-opentracing) BuildRequires: golang(github.com/openzipkin/zipkin-go-opentracing/thrift/gen-go/zipkincore) BuildRequires: golang(github.com/pkg/errors) BuildRequires: golang(github.com/prometheus/client_golang/prometheus) BuildRequires: golang(github.com/prometheus/client_golang/prometheus/promhttp) BuildRequires: golang(github.com/prometheus/client_model/go) BuildRequires: golang(github.com/prometheus/common/expfmt) BuildRequires: golang(github.com/safchain/ethtool) BuildRequires: golang(github.com/satori/go.uuid) # A newer version is needed (current: 2.19.6 ; needed 2.19.7 ; latest 2.20.2) # Breaks mem input plugin # https://bugzilla.redhat.com/show_bug.cgi?id=1742438 BuildRequires: golang(github.com/shirou/gopsutil/cpu) BuildRequires: golang(github.com/shirou/gopsutil/disk) BuildRequires: golang(github.com/shirou/gopsutil/host) BuildRequires: golang(github.com/shirou/gopsutil/load) BuildRequires: golang(github.com/shirou/gopsutil/mem) BuildRequires: golang(github.com/shirou/gopsutil/net) BuildRequires: golang(github.com/shirou/gopsutil/process) # Maybe a newer version is needed (current 1.22.0 ; needed 1.24.1 ; latest 1.26.1) # Breaks kafka_consumer and kafka_consumer_legacy input plugins # Breaks kafka output plugin # https://bugzilla.redhat.com/show_bug.cgi?id=1449219 BuildRequires: golang(github.com/Shopify/sarama) BuildRequires: golang(github.com/soniah/gosnmp) BuildRequires: golang(github.com/streadway/amqp) BuildRequires: golang(github.com/stretchr/testify/assert) BuildRequires: golang(github.com/stretchr/testify/mock) BuildRequires: golang(github.com/tidwall/gjson) BuildRequires: golang(github.com/vjeantet/grok) BuildRequires: golang(github.com/vmware/govmomi) BuildRequires: golang(github.com/vmware/govmomi/object) BuildRequires: golang(github.com/vmware/govmomi/performance) BuildRequires: golang(github.com/vmware/govmomi/property) BuildRequires: golang(github.com/vmware/govmomi/session) BuildRequires: golang(github.com/vmware/govmomi/view) BuildRequires: golang(github.com/vmware/govmomi/vim25) BuildRequires: golang(github.com/vmware/govmomi/vim25/methods) BuildRequires: golang(github.com/vmware/govmomi/vim25/mo) BuildRequires: golang(github.com/vmware/govmomi/vim25/soap) BuildRequires: golang(github.com/vmware/govmomi/vim25/types) BuildRequires: golang(github.com/wavefronthq/wavefront-sdk-go/senders) BuildRequires: golang(github.com/wvanbergen/kafka/consumergroup) BuildRequires: golang(golang.org/x/net/context) BuildRequires: golang(golang.org/x/net/html/charset) BuildRequires: golang(golang.org/x/oauth2) BuildRequires: golang(golang.org/x/oauth2/clientcredentials) BuildRequires: golang(golang.org/x/oauth2/google) BuildRequires: golang(golang.org/x/sys/unix) BuildRequires: golang(google.golang.org/api/iterator) BuildRequires: golang(google.golang.org/api/option) BuildRequires: golang(google.golang.org/api/support/bundler) BuildRequires: golang(google.golang.org/genproto/googleapis/api/distribution) BuildRequires: golang(google.golang.org/genproto/googleapis/api/metric) BuildRequires: golang(google.golang.org/genproto/googleapis/api/monitoredres) BuildRequires: golang(google.golang.org/genproto/googleapis/monitoring/v3) BuildRequires: golang(google.golang.org/grpc) BuildRequires: golang(google.golang.org/grpc/codes) BuildRequires: golang(google.golang.org/grpc/credentials) BuildRequires: golang(google.golang.org/grpc/metadata) BuildRequires: golang(google.golang.org/grpc/peer) BuildRequires: golang(google.golang.org/grpc/status) BuildRequires: golang(gopkg.in/gorethink/gorethink.v3) BuildRequires: golang(gopkg.in/ldap.v3) BuildRequires: golang(gopkg.in/mgo.v2) BuildRequires: golang(gopkg.in/mgo.v2/bson) BuildRequires: golang(gopkg.in/olivere/elastic.v5) BuildRequires: golang(gopkg.in/yaml.v2) %if %{with check} # Tests BuildRequires: golang(github.com/ericchiang/k8s/apis/meta/v1) BuildRequires: golang(github.com/ericchiang/k8s/apis/resource) BuildRequires: golang(github.com/ericchiang/k8s/util/intstr) BuildRequires: golang(github.com/golang/protobuf/ptypes/empty) BuildRequires: golang(github.com/stretchr/testify/require) BuildRequires: golang(github.com/vmware/govmomi/simulator) %endif %description Telegraf is an agent for collecting, processing, aggregating, and writing metrics. %gopkg %prep %goprep %patch0 -p1 # Drop some input plugins for i in \ cisco_telemetry_gnmi \ couchbase \ kafka_consumer \ kafka_consumer_legacy \ kinesis_consumer \ kube_inventory \ logparser \ syslog \ tail \ ; do rm -rf plugins/inputs/$i sed -i -e "/plugins\/inputs\/$i/d" plugins/inputs/all/all.go done # mem \ Needs golang-github-shirou-gopsutil 2.19.7 (currently 2.19.6, latest 2.20.2) # elasticsearch \ # prometheus \ # vsphere \ # aerospike \ # Drop some output plugins for i in \ kafka \ syslog \ ; do rm -rf plugins/outputs/$i sed -i -e "/plugins\/outputs\/$i/d" plugins/outputs/all/all.go done # elasticsearch \ # prometheus_client \ # Drop some parser plugins #for i in \ # dropwizard \ # json \ # ; #do # rm -rf plugins/parsers/$i # sed -i -e "/plugins\/parsers\/$i/d" plugins/parsers/registry.go # : #done # Drop some processors plugins #for i in \ # unpivot \ # ; #do # rm -rf plugins/processors/$i # sed -i -e "/plugins\/processors\/$i/d" plugins/processors/all/all.go #done # Drop some serializer plugins #for i in \ # wavefront \ # ; #do # rm -rf plugins/serializers/$i # sed -i -e "/plugins\/serializers\/$i/d" plugins/serializers/registry.go #done %build for cmd in cmd/* ; do %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd done #for cmd in plugins/inputs/snmp plugins/inputs/leofs; do # %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd #done %install %gopkginstall install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ install -m 0755 -vd %{buildroot}%{_sysconfdir}/telegraf/telegraf.d/ install -m 0644 -vp etc/telegraf.conf %{buildroot}%{_sysconfdir}/telegraf/ install -m 0755 -vd %{buildroot}%{_sysconfdir}/logrotate.d/ install -m 0644 -vp etc/logrotate.d/telegraf \ %{buildroot}%{_sysconfdir}/logrotate.d/ install -m 0755 -vd %{buildroot}%{_localstatedir}/log/telegraf/ %if 0%{?fedora} || 0%{?rhel} >= 7 install -m 0755 -vd %{buildroot}%{_unitdir} install -m 0644 -vp scripts/telegraf.service %{buildroot}%{_unitdir} %else install -m 0755 -vd %{buildroot}%{_initrdir} install -m 0644 -vp scripts/init.sh %{buildroot}%{_initrddir}/telegraf sed -i -e 's,^#! /usr/bin/env bash$,#!/usr/bin/bash,' \ -e 's,^# chkconfig: 2345 99 01,# chkconfig: - 99 01,' \ %{buildroot}%{_initrddir}/telegraf %endif %if %{with check} %check %gocheck %endif %pre getent group telegraf >/dev/null || /usr/sbin/groupadd -r telegraf getent passwd telegraf >/dev/null || \ /usr/sbin/useradd -r -g telegraf \ -d %{_sysconfdir}/telegraf \ -c "System User for telegraf" \ -s "/sbin/nologin" \ telegraf %post %if 0%{?fedora} || 0%{?rhel} >= 7 %systemd_post telegraf.service %else /sbin/chkconfig --add telegraf %endif %postun %if 0%{?fedora} || 0%{?rhel} >= 7 %systemd_postun_with_restart telegraf.service %else if [ "$1" -ge "1" ] ; then /sbin/service telegraf condrestart >/dev/null 2>&1 || : fi %endif %files %license LICENSE %doc docs/ CONTRIBUTING.md CHANGELOG.md README.md %{_bindir}/* %dir %{_sysconfdir}/telegraf/ %dir %{_sysconfdir}/telegraf/telegraf.d/ %config(noreplace) %{_sysconfdir}/telegraf/telegraf.conf %config(noreplace) %{_sysconfdir}/logrotate.d/telegraf %dir %{_localstatedir}/log/telegraf/ %if 0%{?fedora} || 0%{?rhel} >= 7 %{_unitdir}/telegraf.service %else %config(noreplace) %{_initrddir}/telegraf %endif %gopkgfiles %changelog * Thu Mar 19 2020 Xavier Bachelot - 1.13.4-1 - Update to 1.13.4. * Wed Feb 05 2020 Xavier Bachelot - 1.13.3-1 - Initial package