From ca573d1549829fdd82623f8e3fd5cf692db92e76 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Fri, 19 Apr 2019 17:02:59 -0500 Subject: www-apps/trickster: Dashboard Accelerator for Prometheus Copyright: Sony Interactive Entertainment Inc. Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: William Hubbs --- www-apps/trickster/Manifest | 2 + www-apps/trickster/files/trickster.conf | 113 ++++++++++++++++++++++++++++++ www-apps/trickster/files/trickster.initd | 25 +++++++ www-apps/trickster/metadata.xml | 8 +++ www-apps/trickster/trickster-0.1.9.ebuild | 45 ++++++++++++ 5 files changed, 193 insertions(+) create mode 100644 www-apps/trickster/Manifest create mode 100644 www-apps/trickster/files/trickster.conf create mode 100644 www-apps/trickster/files/trickster.initd create mode 100644 www-apps/trickster/metadata.xml create mode 100644 www-apps/trickster/trickster-0.1.9.ebuild (limited to 'www-apps/trickster') diff --git a/www-apps/trickster/Manifest b/www-apps/trickster/Manifest new file mode 100644 index 000000000000..4a73b462077f --- /dev/null +++ b/www-apps/trickster/Manifest @@ -0,0 +1,2 @@ +DIST trickster-0.1.9-vendor.tar.gz 1748976 BLAKE2B 77ad4a91a889a8241399fe6b4199d25c0ba52e818fbe1df8186dadea0f69c1d04f9c268fc376820592465ed36104a6195ce9a9985f8a9c02636ee1b8f80114b7 SHA512 6427cb3417ae7d62e5e144cb5a1962f2175ab063c2267abd838560db00acc4c161666df4ea2065a02172b50240f17a6ad09d76973e59d9bea91ecf4a9327466f +DIST trickster-0.1.9.tar.gz 1739869 BLAKE2B dc50d12acfe27f68054bbafdeada0bd1847ebb1e03847f9173c7e9b772218ce2e7ceffe25db282912f88c005c0d590e3effece6483bdd80830438a8d114f859f SHA512 82fa837d2b18143a65e22a06d2821d7a1da298fb3e9389854f8e6ad4de68f35d40d6aec2d23cca877032227d12818063953244a01b42f09bd724677d1080e84f diff --git a/www-apps/trickster/files/trickster.conf b/www-apps/trickster/files/trickster.conf new file mode 100644 index 000000000000..9fb255e19c5b --- /dev/null +++ b/www-apps/trickster/files/trickster.conf @@ -0,0 +1,113 @@ +[main] +# instance_id allows you to run multiple trickster processes on the same host and log to separate files +# Useful for baremetal, not so much for elastic deployments, so only uncomment if you really need it +#instance_id = 1 + +# Configuration options for the Proxy Server +[proxy_server] +# listen_port defines the port on which Trickster's Proxy server listens. +# since this is a proxy for Prometheus, we use 9090 by default, just like Prometheus does +# listen_port = 9090 +# listen_address defines the ip on which Trickster's Proxy server listens. +# empty by default, listening on all interfaces +# listen_address = + +[cache] +# cache_type defines what kind of cache Trickster uses +# options are 'boltdb', 'filesystem', 'memory', and 'redis'. +# The default is 'memory'. +cache_type = 'memory' + +# record_ttl_secs defines the relative expiration of cached queries. default is 6 hours (21600 seconds) +# record_ttl_secs = 21600 + +# reap_sleep_ms defines how long the cache reaper waits between reap cycles. Default is 1000 (1s) +# reap_sleep_ms = 1000 + +# compression determines whether the cache should be compressed. default is true +# compression = true + + ### Configuration options when using a Redis Cache + # [cache.redis] + # protocol defines the protocol for connecting to redis ('unix' or 'tcp') 'tcp' is default + # protocol = 'tcp' + # endpoint defines the fqdn+port or path to a unix socket file for connecting to redis + # default is 'redis:6379' + # endpoint = 'redis:6379' + + ### Configuration options when using a Filesystem Cache + # [cache.filesystem] + # cache_path defines the directory location under which the Trickster cache will be maintained + # default is '/tmp/trickster' + # cache_path = '/tmp/trickster' + + # Configuration options when using a BoltDb Cache + #[cache.boltdb] + + # filename defines the file where the Trickster cache will be maintained + # default is 'trickster.db' + # filename = 'trickster.db' + + # bucket defines the name of the BotlDb bucket (similar to a namespace) under which our key value store lives + # default is 'trickster' + # bucket = 'trickster' + +# Configuration options for mapping Origin(s) +[origins] + ### The default origin + [origins.default] + + # origin_url defines the URL of the origin. Default is http://prometheus:9090 + origin_url = 'http://prometheus:9090' + + # timeout_secs defines how many seconds Trickster will wait before aborting and upstream http request. Default: 180s + # timeout_secs = 180 + + # api path defines the path of the Prometheus API (usually '/api/v1') + api_path = '/api/v1' + + # ignore_no_cache_header disables a client's ability to send a no-cache to refresh a cached query. Default is false + # ignore_no_cache_header = false + + # max_value_age_secs defines the maximum age of specific datapoints in seconds. Default is 86400 (24 hours) + max_value_age_secs = 86400 + + # fast_forward_disable, when set to true, will turn off the 'fast forward' feature for any requests proxied to this origin + # fast_forward_disable = false + + # For multi-origin support, origins are named, and the name is the second word of the configuration section name. + # In this example, an origin is named "foo". Clients can indicate this origin in their path (http://trickster.example.com:9090/foo/query_range?.....) + # there are other ways for clients to indicate which origin to use in a multi-origin setup. See the documentation for more information + + # [origins.foo] + # origin_url = 'http://prometheus-foo:9090' + # api_path = '/api/v1' + # default_step = 300 + # ignore_no_cache_header = false + # max_value_age_secs = 86400 + # timeout_secs = 180 + +# Configuration Options for Metrics Instrumentation +[metrics] +# listen_port defines the port that Trickster's metrics server listens on at /metrics +listen_port = 8082 +# listen_address defines the ip that Trickster's metrics server listens on at /metrics +# empty by default, listening on all interfaces +# listen_address = + +# Configruation Options for Profiler +[profiler] +# enabled indicates whether to start the profiler server when Trickster starts up. Default: false +# enabled = false +# listen_port defines the port that Trickster's profiler server listens on at /debug/pprof. Default: 6060 +# listen_port = 6060 + +# Configuration Options for Logging Instrumentation +[logging] +# log_level defines the verbosity of the logger. Possible values are 'debug', 'info', 'warn', 'error' +# default is info +log_level = 'info' + +# log_file defines the file location to store logs. These will be auto-rolled and maintained for you. +# not specifying a log_file (this is the default behavior) will print logs to STDOUT +log_file = '/var/log/trickster/trickster.log' diff --git a/www-apps/trickster/files/trickster.initd b/www-apps/trickster/files/trickster.initd new file mode 100644 index 000000000000..bdee1f57e2e6 --- /dev/null +++ b/www-apps/trickster/files/trickster.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run + +description="Dashboard Accelerator for Prometheus" +command=/usr/bin/trickster +command_background=yes +command_user=${user:-trickster}:${group:-trickster} +extra_started_commands=reload +pidfile=/var/run/${RC_SVCNAME}.pid + +depend() { + after net +} + +reload() { + ebegin "Reloading ${RC_SVCNAME}" + case "${supervisor}" in + supervise-daemon) + supervise-daemon --signal HUP --pidfile "${pidfile}" + ;; + *) + start-stop-daemon --signal HUP --pidfile "${pidfile}" + ;; + esac + eend $? +} diff --git a/www-apps/trickster/metadata.xml b/www-apps/trickster/metadata.xml new file mode 100644 index 000000000000..c36c37139fad --- /dev/null +++ b/www-apps/trickster/metadata.xml @@ -0,0 +1,8 @@ + + + + + williamh@gentoo.org + William Hubbs + + diff --git a/www-apps/trickster/trickster-0.1.9.ebuild b/www-apps/trickster/trickster-0.1.9.ebuild new file mode 100644 index 000000000000..ef356ced058a --- /dev/null +++ b/www-apps/trickster/trickster-0.1.9.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit user systemd + +DESCRIPTION="Dashboard Accelerator for Prometheus" +HOMEPAGE="https://github.com/Comcast/trickster" +VENDOR_URI="https://dev.gentoo.org/~williamh/dist/${P}-vendor.tar.gz" +SRC_URI="https://github.com/Comcast/trickster/archive/v${PV}.tar.gz -> ${P}.tar.gz + ${VENDOR_URI}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND="dev-lang/go:=" + +RESTRICT="strip" + +pkg_setup() { + enewgroup ${PN} + enewuser ${PN} -1 -1 -1 ${PN} +} + +src_prepare() { + default + mv ../vendor . +} + +src_compile() { + GOCACHE="${T}"/go-cache go build -a -mod vendor -v || die "build failed" +} + +src_install() { + dobin ${PN} +dodoc -r conf docs/* + systemd_dounit conf/trickster.service + keepdir /var/log/${PN} + fowners ${PN}:${PN} /var/log/${PN} + insinto /etc/trickster + doins "${FILESDIR}"/${PN}.conf + newinitd "${FILESDIR}"/${PN}.initd ${PN} +} -- cgit v1.2.3-65-gdbad