summaryrefslogtreecommitdiffstats
path: root/utils/telegraf/Makefile
blob: 276706ac970fb05ea727b785984cdd1debe02ced (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# SPDX-License-Identifier: GPL-2.0-or-later

include $(TOPDIR)/rules.mk

PKG_NAME:=telegraf
PKG_VERSION:=1.37.3
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/influxdata/telegraf/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=a01e7607ebdf7df5fe04bb9960b58a7c1d0501f24b55c3e01005de7c930247dd

PKG_MAINTAINER:=Niklas Thorild <niklas@thorild.se>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16

GO_PKG:=github.com/influxdata/telegraf
GO_PKG_BUILD_PKG:=github.com/influxdata/telegraf/cmd/telegraf
GO_PKG_LDFLAGS_X := \
  github.com/influxdata/telegraf/internal.Version=$(PKG_VERSION) \
  github.com/influxdata/telegraf/internal.Branch=HEAD \
  github.com/influxdata/telegraf/internal.Commit=2a6d1315

ifeq ($(CONFIG_mips)$(CONFIG_mipsel),y)
  TARGET_LDFLAGS += -static
endif

TELEGRAF_SMALL_PLUGINS:=custom \
	inputs.cpu \
	inputs.ethtool \
	inputs.http \
	inputs.internal \
	inputs.interrupts \
	inputs.ipset \
	inputs.iptables \
	inputs.kernel \
	inputs.mem \
	inputs.net \
	inputs.net_response \
	inputs.ping \
	inputs.processes \
	inputs.procstat \
	inputs.sensors \
	inputs.snmp \
	inputs.socket_listener \
	inputs.swap \
	inputs.syslog \
	inputs.system \
	inputs.tail \
	inputs.wireguard \
	inputs.wireless \
	outputs.exec \
	outputs.file \
	outputs.graphite \
	outputs.http \
	outputs.influxdb \
	outputs.influxdb_v2 \
	outputs.prometheus_client \
	outputs.syslog

include $(INCLUDE_DIR)/package.mk
include ../../lang/golang/golang-package.mk

define Package/telegraf/Default
	SECTION:=utils
	CATEGORY:=Utilities
	TITLE:=Telegraf
	DEPENDS:=$(GO_ARCH_DEPENDS)
endef

define Package/telegraf-full
	$(call Package/telegraf/Default)
	TITLE+= (Full)
	VARIANT:=full
endef

define Package/telegraf
	$(call Package/telegraf/Default)
	TITLE+= (Small)
	VARIANT:=small
endef

define Package/telegraf/description/Default
	Telegraf is a plugin-driven agent for collecting and sending metrics and events.
	It supports various inputs (including prometheus endpoints) and is able to send data into InfluxDB.
endef

define Package/telegraf/description
	$(call Package/telegraf/description/Default)
	(Small build. Most plugins excluded)
endef

define Package/telegraf-full/description
	$(call Package/telegraf/description/Default)
	(Full build. including all plugins)
endef

define Package/telegraf/conffiles
/etc/telegraf.conf
endef

Package/telegraf-full/conffiles = $(Package/telegraf/conffiles)

ifeq ($(BUILD_VARIANT),small)
	GO_PKG_TAGS:=$(TELEGRAF_SMALL_PLUGINS)
else
	GO_PKG_TAGS:=
endif

define Package/telegraf/install
	$(call GoPackage/Package/Install/Bin,$(1))
	$(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/config
	$(INSTALL_BIN) ./files/etc/init.d/telegraf $(1)/etc/init.d/telegraf
	$(INSTALL_DIR) $(1)/etc/uci-defaults
	$(INSTALL_BIN) ./files/etc/uci-defaults/90-telegraf $(1)/etc/uci-defaults/90-telegraf
endef

define Package/telegraf-full/install
	$(call Package/telegraf/install,$(1))
endef

$(eval $(call GoBinPackage,telegraf))
$(eval $(call BuildPackage,telegraf))

$(eval $(call GoBinPackage,telegraf-full))
$(eval $(call BuildPackage,telegraf-full))