Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-metrics/prometheus-mysqld_exporter/files/, ...
Date: Mon, 26 Mar 2018 22:39:44
Message-Id: 1522103956.101f87f123cbab566f5986c4f056a1c39f41e273.whissi@gentoo
1 commit: 101f87f123cbab566f5986c4f056a1c39f41e273
2 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
3 AuthorDate: Mon Mar 26 22:38:59 2018 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Mon Mar 26 22:39:16 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=101f87f1
7
8 app-metrics/prometheus-mysqld_exporter: Initial version
9
10 Package-Manager: Portage-2.3.24, Repoman-2.3.6
11
12 app-metrics/prometheus-mysqld_exporter/Manifest | 1 +
13 .../files/prometheus-mysqld_exporter.confd | 28 +++++++++
14 .../files/prometheus-mysqld_exporter.initd | 68 ++++++++++++++++++++++
15 .../files/prometheus-mysqld_exporter.logrotate | 5 ++
16 .../prometheus-mysqld_exporter/metadata.xml | 11 ++++
17 .../prometheus-mysqld_exporter-0.10.0.ebuild | 61 +++++++++++++++++++
18 6 files changed, 174 insertions(+)
19
20 diff --git a/app-metrics/prometheus-mysqld_exporter/Manifest b/app-metrics/prometheus-mysqld_exporter/Manifest
21 new file mode 100644
22 index 00000000000..fe49b6e44fd
23 --- /dev/null
24 +++ b/app-metrics/prometheus-mysqld_exporter/Manifest
25 @@ -0,0 +1 @@
26 +DIST prometheus-mysqld_exporter-0.10.0.tar.gz 971604 BLAKE2B ec077b7b6a15f6173e5cc04e741c51c4d26a214601da8eb1aede49ee325f52bea2140b8e5b3bdbc2a1e527e40c95099dca2a57501d44a26e787cdc330f4aa8b8 SHA512 0a7b0ff537ad59a9b64aa18dfe1d1eb9253b12ae566d5c151555fbd4457b7e65890b6569632b452ae317b3acbfa94c12d96f6fb6e4f982b9b2161fc4747330f5
27
28 diff --git a/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.confd b/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.confd
29 new file mode 100644
30 index 00000000000..f55143b944e
31 --- /dev/null
32 +++ b/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.confd
33 @@ -0,0 +1,28 @@
34 +# /etc/conf.d/prometheus-mysqld_exporter
35 +
36 +# PID file
37 +# If you should ever change this, remember to update
38 +# "/etc/logrotate.d/rsyslog", too.
39 +#EXPORTER_PIDFILE="/run/${RC_SVCNAME}.pid"
40 +
41 +# The termination timeout (start-stop-daemon parameter "retry") ensures
42 +# that the service will be terminated within a given time (60 + 5 seconds
43 +# per default) when you are stopping the service.
44 +#EXPORTER_TERMTIMEOUT="TERM/60/KILL/5"
45 +
46 +# User to run exporter as
47 +#EXPORTER_USER="prometheus-mysqld_exporter"
48 +
49 +# User group to run exporter as
50 +#EXPORTER_GROUP="prometheus-mysqld_exporter"
51 +
52 +# You can use this configuration option to pass additional options to the
53 +# start-stop-daemon, see start-stop-daemon(8) for more details.
54 +# Per default we wait 1000ms after we have started the service to ensure
55 +# that the daemon is really up and running.
56 +#EXPORTER_SSDARGS="--wait 1000"
57 +
58 +# Exporter flags
59 +# See `prometheus-mysqld-exporter --help` for more details
60 +EXPORTER_FLAGS="-log.level=info"
61 +#EXPORTER_FLAGS="${EXPORTER_FLAGS} -yourAdditionalFlag"
62
63 diff --git a/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.initd b/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.initd
64 new file mode 100644
65 index 00000000000..10a7ac1f1ab
66 --- /dev/null
67 +++ b/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.initd
68 @@ -0,0 +1,68 @@
69 +#!/sbin/openrc-run
70 +# Copyright 2016-2018 Gentoo Foundation
71 +# Distributed under the terms of the GNU General Public License v2
72 +
73 +description="Prometheus exporter for MySQL server metrics"
74 +
75 +EXPORTER_FLAGS=${EXPORTER_FLAGS:-""}
76 +EXPORTER_USER=${EXPORTER_USER:-"prometheus-mysqld_exporter"}
77 +EXPORTER_GROUP=${EXPORTER_GROUP:-prometheus-mysqld_exporter}
78 +EXPORTER_PIDFILE=${EXPORTER_PIDFILE:-"/run/${RC_SVCNAME}.pid"}
79 +EXPORTER_SSDARGS=${EXPORTER_SSDARGS:-"--wait 1000"}
80 +EXPORTER_TERMTIMEOUT=${EXPORTER_TERMTIMEOUT:-"TERM/60/KILL/5"}
81 +
82 +command="/usr/bin/mysqld_exporter"
83 +command_args="${EXPORTER_FLAGS}"
84 +command_background="true"
85 +start_stop_daemon_args="${EXPORTER_SSDARGS}"
86 +start_stop_daemon_args="${start_stop_daemon_args} --user ${EXPORTER_USER}"
87 +start_stop_daemon_args="${start_stop_daemon_args} --group ${EXPORTER_GROUP}"
88 +
89 +# We are forcing log files because upstream is going to remove syslog support :/
90 +start_stop_daemon_args="${start_stop_daemon_args} --stdout /var/log/mysqld_exporter/${RC_SVCNAME}.log"
91 +start_stop_daemon_args="${start_stop_daemon_args} --stderr /var/log/mysqld_exporter/${RC_SVCNAME}.log"
92 +
93 +getconfig() {
94 + local key="$1"
95 + local value_default="$2"
96 + local value=
97 +
98 + if service_started; then
99 + value="$(service_get_value "${key}")"
100 + fi
101 +
102 + if [ -z "${value}" ]; then
103 + # Value not explicitly set
104 + echo "${value_default}"
105 + else
106 + echo "${value}"
107 + fi
108 +
109 + return 0
110 +}
111 +
112 +pidfile="$(getconfig pidfile ${EXPORTER_PIDFILE})"
113 +retry="$(getconfig retry ${EXPORTER_TERMTIMEOUT})"
114 +
115 +configtest() {
116 + if test "${command_args#*config\.my-cnf}" = "${command_args}"; then
117 + local _default_config_file="/var/lib/mysqld_exporter/.my.cnf"
118 + if [ ! -s "${_default_config_file}" ]; then
119 + eerror "No MySQL credentials found in \"${_default_config_file}\"!"
120 + eerror "Either create that file and add credentials or specify another file via \"-config.my-cnf\" flag."
121 + return 1
122 + fi
123 + fi
124 +
125 + return 0
126 +}
127 +
128 +depend() {
129 + after net
130 +}
131 +
132 +start_pre() {
133 + if [ "${RC_CMD}" != "restart" ]; then
134 + configtest || return 1
135 + fi
136 +}
137
138 diff --git a/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.logrotate b/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.logrotate
139 new file mode 100644
140 index 00000000000..ec360d7ab4c
141 --- /dev/null
142 +++ b/app-metrics/prometheus-mysqld_exporter/files/prometheus-mysqld_exporter.logrotate
143 @@ -0,0 +1,5 @@
144 +/var/log/mysqld_exporter/*.log {
145 + missingok
146 + notifempty
147 + size 30k
148 +}
149
150 diff --git a/app-metrics/prometheus-mysqld_exporter/metadata.xml b/app-metrics/prometheus-mysqld_exporter/metadata.xml
151 new file mode 100644
152 index 00000000000..adebc721a7e
153 --- /dev/null
154 +++ b/app-metrics/prometheus-mysqld_exporter/metadata.xml
155 @@ -0,0 +1,11 @@
156 +<?xml version="1.0" encoding="UTF-8"?>
157 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
158 +<pkgmetadata>
159 + <maintainer type="person">
160 + <email>whissi@g.o</email>
161 + <name>Thomas Deutschmann</name>
162 + </maintainer>
163 + <upstream>
164 + <remote-id type="github">prometheus/mysqld_exporter</remote-id>
165 + </upstream>
166 +</pkgmetadata>
167
168 diff --git a/app-metrics/prometheus-mysqld_exporter/prometheus-mysqld_exporter-0.10.0.ebuild b/app-metrics/prometheus-mysqld_exporter/prometheus-mysqld_exporter-0.10.0.ebuild
169 new file mode 100644
170 index 00000000000..c7e66857e6a
171 --- /dev/null
172 +++ b/app-metrics/prometheus-mysqld_exporter/prometheus-mysqld_exporter-0.10.0.ebuild
173 @@ -0,0 +1,61 @@
174 +# Copyright 1999-2018 Gentoo Foundation
175 +# Distributed under the terms of the GNU General Public License v2
176 +
177 +EAPI="6"
178 +inherit user golang-build golang-vcs-snapshot
179 +
180 +EGO_PN="github.com/prometheus/mysqld_exporter"
181 +EGIT_COMMIT="v${PV/_rc/-rc.}"
182 +MYSQLD_EXPORTER_COMMIT="8068006"
183 +ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
184 +KEYWORDS="~amd64"
185 +
186 +DESCRIPTION="Prometheus exporter for MySQL server metrics"
187 +HOMEPAGE="https://github.com/prometheus/mysqld_exporter"
188 +SRC_URI="${ARCHIVE_URI}"
189 +LICENSE="Apache-2.0"
190 +SLOT="0"
191 +IUSE=""
192 +
193 +DEPEND="dev-util/promu"
194 +
195 +pkg_setup() {
196 + enewgroup ${PN}
197 + enewuser ${PN} -1 -1 /var/lib/mysqld_exporter ${PN}
198 +}
199 +
200 +src_prepare() {
201 + default
202 + sed -i -e "s/{{.Revision}}/${MYSQLD_EXPORTER_COMMIT}/" src/${EGO_PN}/.promu.yml || die
203 +}
204 +
205 +src_compile() {
206 + pushd src/${EGO_PN} || die
207 + mkdir -p bin || die
208 + GOPATH="${S}" promu build -v --prefix mysqld_exporter || die
209 + popd || die
210 +}
211 +
212 +src_install() {
213 + pushd src/${EGO_PN} || die
214 + dobin mysqld_exporter/mysqld_exporter
215 + dodoc {README,CHANGELOG,CONTRIBUTING}.md
216 + popd || die
217 +
218 + keepdir /var/lib/mysqld_exporter /var/log/mysqld_exporter
219 + fowners ${PN}:${PN} /var/lib/mysqld_exporter /var/log/mysqld_exporter
220 + fperms 0770 /var/lib/mysqld_exporter
221 +
222 + newinitd "${FILESDIR}"/${PN}.initd ${PN}
223 + newconfd "${FILESDIR}"/${PN}.confd ${PN}
224 +
225 + insinto /etc/logrotate.d/
226 + newins "${FILESDIR}"/${PN}.logrotate ${PN}
227 +}
228 +
229 +pkg_postinst() {
230 + if [[ -z "${REPLACING_VERSIONS}" ]]; then
231 + # This is a new installation
232 + elog "Create \"${EROOT%/}/var/lib/mysqld_exporter/.my.cnf\" to read MySQL credentials from file."
233 + fi
234 +}