pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

chronograf: Open source monitoring and visualization UI



Module Name:	pkgsrc-wip
Committed By:	Bill Welliver <bill%welliver.org@localhost>
Pushed By:	hww3
Date:		Fri Jan 25 21:32:00 2019 -0500
Changeset:	52729582095d5f32d5ea181a749a69d6cb7ae5cf

Added Files:
	chronograf/DESCR
	chronograf/Makefile
	chronograf/PLIST
	chronograf/distinfo
	chronograf/files/chronograf.sh
	chronograf/files/smf/manifest.xml
	chronograf/patches/patch-Makefile

Log Message:
chronograf: Open source monitoring and visualization UI

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=52729582095d5f32d5ea181a749a69d6cb7ae5cf

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 chronograf/DESCR                  |   1 +
 chronograf/Makefile               | 139 ++++++++++++++++++++++++++++++++++++++
 chronograf/PLIST                  |  90 ++++++++++++++++++++++++
 chronograf/distinfo               |  11 +++
 chronograf/files/chronograf.sh    |  22 ++++++
 chronograf/files/smf/manifest.xml |  30 ++++++++
 chronograf/patches/patch-Makefile |  86 +++++++++++++++++++++++
 7 files changed, 379 insertions(+)

diffs:
diff --git a/chronograf/DESCR b/chronograf/DESCR
new file mode 100644
index 0000000000..2bd4a61dfa
--- /dev/null
+++ b/chronograf/DESCR
@@ -0,0 +1 @@
+Open source monitoring and visualization UI, part of the InfluxData TICK (telegraf, influxdb, chronograf, kapacitor) stack
diff --git a/chronograf/Makefile b/chronograf/Makefile
new file mode 100644
index 0000000000..6f6cba06c0
--- /dev/null
+++ b/chronograf/Makefile
@@ -0,0 +1,139 @@
+# $NetBSD$
+
+# TODO give startup scripts more attention
+# TODO consider changing default internal paths to reflect ${PREFIX}
+
+GITHUB_PROJECT=	chronograf
+PKGVERSION_NOREV= 1.7.7
+DISTNAME=    	chronograf-1.7.7
+GITHUB_TAG=	${PKGVERSION_NOREV}
+CATEGORIES=	sysutils
+MASTER_SITES=	${MASTER_SITE_GITHUB:=influxdata/}
+MAINTAINER=	william%welliver.org@localhost
+HOMEPAGE=	https://www.influxdata.com/
+COMMENT=	Monitoring and visualization UI for the TICK stack
+LICENSE=	gnu-agpl-v3
+
+# despite being the default value, this explicit declaration is required for things
+# to build properly.
+EXTRACT_SUFX=   .tar.gz
+
+CHRONOGRAF_DISTNAME=			${DISTNAME}${EXTRACT_SUFX}
+CHRONOGRAF_DEPENDENCIES_DIR=	chronograf-dependencies-${PKGVERSION_NOREV}
+CHRONOGRAF_DEPENDENCIES=	${CHRONOGRAF_DEPENDENCIES_DIR}${EXTRACT_SUFX}
+
+DISTFILES=			${CHRONOGRAF_DISTNAME}
+
+.if !defined(BOOTSTRAP)
+DISTFILES+=	${CHRONOGRAF_DEPENDENCIES}
+SITES.${CHRONOGRAF_DEPENDENCIES}= https://bitbucket.org/hww3/influxdb/downloads/
+.endif
+
+EXTRACT_DIR.${CHRONOGRAF_DISTNAME}=	${WRKDIR}/src/github.com/influxdata
+WRKSRC=				${WRKDIR}/src/github.com/influxdata/chronograf
+USE_TOOLS+=	gmake curl
+USE_LANGUAGES+=	c c++
+
+BUILD_DEPENDS+=		go110-1.10.*:../../lang/go110
+BUILD_DEPENDS+=		py27-gyp-[0-9]*:../../devel/gyp
+BUILD_DEPENDS+=		python27-2.7.*:../../lang/python27
+BUILD_DEPENDS+=		npm-6.*.*:../../lang/npm
+BUILD_DEPENDS+=		yarn-1.7.*:../../devel/yarn
+
+# go language executables don't have SSP support
+CHECK_SSP_SKIP=	bin/*
+
+PKGSRC_MAKE_ENV+=		GOPATH=${WRKDIR}
+PKGSRC_MAKE_ENV+=		GO_BIN=${GO_BIN}
+PKGSRC_MAKE_ENV+=	PYTHON=${PREFIX}/bin/python2.7
+PKGSRC_MAKE_ENV+=	YARN_DISABLE_SELF_UPDATE_CHECK="true"
+
+PKG_SYSCONFSUBDIR=	chronograf
+
+RESOURCEDIR=	${PREFIX}/share/chronograf
+DATADIR=	${VARBASE}/lib/chronograf
+LOGDIR=		${VARBASE}/log/chronograf
+
+BUILD_DEFS+=		CHRONOGRAF_USER CHRONOGRAF_GROUP VARBASE
+FILES_SUBST+=		CHRONOGRAF_USER=${CHRONOGRAF_USER:Q}
+FILES_SUBST+=		CHRONOGRAF_GROUP=${CHRONOGRAF_GROUP:Q}
+FILES_SUBST+=		DATADIR=${DATADIR:Q}
+FILES_SUBST+=		LOGDIR=${LOGDIR:Q}
+FILES_SUBST+=		RESOURCEDIR=${RESOURCEDIR:Q}
+
+CHRONOGRAF_USER?=	chronograf
+CHRONOGRAF_GROUP?=	chronograf
+OWN_DIRS_PERMS+=	${DATADIR} ${CHRONOGRAF_USER} ${CHRONOGRAF_GROUP} 0700
+OWN_DIRS_PERMS+=	${LOGDIR} ${CHRONOGRAF_USER} ${CHRONOGRAF_GROUP} 0700
+PKG_USERS_VARS+=	CHRONOGRAF_USER
+PKG_GROUPS_VARS+=	CHRONOGRAF_GROUP
+PKG_GROUPS=		${CHRONOGRAF_GROUP}
+PKG_USERS=		${CHRONOGRAF_USER}:${CHRONOGRAF_GROUP}
+RCD_SCRIPTS=		chronograf
+
+INSTALLATION_DIRS+=	bin etc/chronograf share/doc/chronograf share/examples/chronograf share/examples/chronograf/logrotate.d share/chronograf/canned share/chronograf/protoboards
+
+DOC_FILES+=	LICENSE LICENSE_OF_DEPENDENCIES.md README.md CHANGELOG.md platform_migrate.md agpl-3.0.md
+BIN_FILES+=	chronograf chronoctl
+
+GO_BIN=	${PREFIX}/go110/bin/go
+CPPFLAGS+=	-I${PREFIX}/include/node
+CFLAGS+=	-I${PREFIX}/include/node
+
+post-extract:
+	${MV} ${WRKDIR}/src/github.com/influxdata/${DISTNAME}	\
+	  ${WRKDIR}/src/github.com/influxdata/chronograf
+.if !defined(BOOTSTRAP)
+	${MV} ${WRKDIR}/vendor_js ${WRKSRC}/ui
+.endif
+
+# it doesn't seem like there's a way to get yarn to fetch but not build dependencies.
+# also, need to figure out a way to get the target dependency to work properly on this make target.
+.PHONY:	_fetch_dependencies
+_fetch_dependencies: extract
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${TOUCH} .godep
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${MKDIR} ${WRKSRC}/vendor_js
+	cd ${WRKSRC}/ui && ${ECHO} yarn-offline-mirror \"./vendor_js\" > .yarnrc
+	cd ${WRKSRC}/ui && ${SETENV} ${PKGSRC_MAKE_ENV} yarn --no-progress --no-emoji --offline --verbose
+	cd ${WRKSRC}/ui && ${SETENV} ${PKGSRC_MAKE_ENV} tar czvf ${CHRONOGRAF_DEPENDENCIES}  vendor_js
+	cd ${WRKSRC}/ui && ${SETENV} ${PKGSRC_MAKE_ENV} mv ${CHRONOGRAF_DEPENDENCIES} /data/pkgsrc/wip/chronograf
+
+# 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=@${CHRONOGRAF_DEPENDENCIES}
+
+do-build:
+	touch ${WRKSRC}/.jsdep
+	touch ${WRKSRC}/.godep
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} ${GMAKE} .godep
+	cd ${WRKSRC}/vendor/github.com/kevinburke/go-bindata && ${SETENV} ${PKGSRC_MAKE_ENV} ${GO_BIN} install ./...
+	cd ${WRKSRC}/ui && ${ECHO} yarn-offline-mirror \"./vendor_js\" > .yarnrc
+	cd ${WRKSRC}/ui && ${SETENV} ${PKGSRC_MAKE_ENV} CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" yarn --no-progress --no-emoji --offline
+	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV} PATH=$$PATH:${WRKDIR}/bin ${GMAKE} 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} ${WRKSRC}/${x} \
+	  ${DESTDIR}${PREFIX}/bin/${x}
+.endfor
+.for x in ${DOC_FILES}
+	${INSTALL_DATA} ${WRKSRC}/${x} \
+	  ${DESTDIR}${PREFIX}/share/doc/chronograf/${x}
+.endfor
+
+	for x in ${WRKSRC}/canned/*.json ; do \
+	  ${INSTALL_DATA} $$x ${DESTDIR}${PREFIX}/share/${PKGBASE}/canned/ ;\
+	done
+	for x in ${WRKSRC}/protoboards/*.json ; do \
+	  ${INSTALL_DATA} $$x ${DESTDIR}${PREFIX}/share/${PKGBASE}/protoboards/ ;\
+	done
+.include "../../lang/nodejs/buildlink3.mk"
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/chronograf/PLIST b/chronograf/PLIST
new file mode 100644
index 0000000000..602185059f
--- /dev/null
+++ b/chronograf/PLIST
@@ -0,0 +1,90 @@
+@comment $NetBSD$
+bin/chronoctl
+bin/chronograf
+share/chronograf/canned/apache.json
+share/chronograf/canned/consul.json
+share/chronograf/canned/consul_agent.json
+share/chronograf/canned/consul_cluster.json
+share/chronograf/canned/consul_election.json
+share/chronograf/canned/consul_http.json
+share/chronograf/canned/consul_leadership.json
+share/chronograf/canned/consul_serf_events.json
+share/chronograf/canned/cpu.json
+share/chronograf/canned/disk.json
+share/chronograf/canned/diskio.json
+share/chronograf/canned/docker.json
+share/chronograf/canned/docker_blkio.json
+share/chronograf/canned/docker_net.json
+share/chronograf/canned/elasticsearch.json
+share/chronograf/canned/haproxy.json
+share/chronograf/canned/influxdb_database.json
+share/chronograf/canned/influxdb_httpd.json
+share/chronograf/canned/influxdb_queryExecutor.json
+share/chronograf/canned/influxdb_write.json
+share/chronograf/canned/kubernetes_node.json
+share/chronograf/canned/kubernetes_pod_container.json
+share/chronograf/canned/kubernetes_pod_network.json
+share/chronograf/canned/kubernetes_system_container.json
+share/chronograf/canned/load.json
+share/chronograf/canned/mem.json
+share/chronograf/canned/memcached.json
+share/chronograf/canned/mesos.json
+share/chronograf/canned/mongodb.json
+share/chronograf/canned/mysql.json
+share/chronograf/canned/net.json
+share/chronograf/canned/netstat.json
+share/chronograf/canned/nginx.json
+share/chronograf/canned/nsq_channel.json
+share/chronograf/canned/nsq_server.json
+share/chronograf/canned/nsq_topic.json
+share/chronograf/canned/phpfpm.json
+share/chronograf/canned/ping.json
+share/chronograf/canned/postgresql.json
+share/chronograf/canned/processes.json
+share/chronograf/canned/procstat.json
+share/chronograf/canned/rabbitmq.json
+share/chronograf/canned/redis.json
+share/chronograf/canned/riak.json
+share/chronograf/canned/varnish.json
+share/chronograf/canned/win_cpu.json
+share/chronograf/canned/win_mem.json
+share/chronograf/canned/win_net.json
+share/chronograf/canned/win_system.json
+share/chronograf/canned/win_websvc.json
+share/chronograf/protoboards/apache.json
+share/chronograf/protoboards/consul.json
+share/chronograf/protoboards/consul_telemetry.json
+share/chronograf/protoboards/docker.json
+share/chronograf/protoboards/elasticsearch.json
+share/chronograf/protoboards/haproxy.json
+share/chronograf/protoboards/iis.json
+share/chronograf/protoboards/influxdb.json
+share/chronograf/protoboards/kubernetes_node.json
+share/chronograf/protoboards/kubernetes_overview.json
+share/chronograf/protoboards/kubernetes_pod.json
+share/chronograf/protoboards/memcached.json
+share/chronograf/protoboards/mesos.json
+share/chronograf/protoboards/mongodb.json
+share/chronograf/protoboards/mysql.json
+share/chronograf/protoboards/nginx.json
+share/chronograf/protoboards/nsq.json
+share/chronograf/protoboards/phpfpm.json
+share/chronograf/protoboards/ping.json
+share/chronograf/protoboards/postgresql.json
+share/chronograf/protoboards/rabbitmq.json
+share/chronograf/protoboards/redis.json
+share/chronograf/protoboards/riak.json
+share/chronograf/protoboards/system.json
+share/chronograf/protoboards/varnish.json
+share/chronograf/protoboards/vmware_vsphere_cluster_overview.json
+share/chronograf/protoboards/vmware_vsphere_cluster_vms.json
+share/chronograf/protoboards/vmware_vsphere_hosts.json
+share/chronograf/protoboards/win_system.json
+share/doc/chronograf/CHANGELOG.md
+share/doc/chronograf/LICENSE
+share/doc/chronograf/LICENSE_OF_DEPENDENCIES.md
+share/doc/chronograf/README.md
+share/doc/chronograf/agpl-3.0.md
+share/doc/chronograf/platform_migrate.md
+@pkgdir share/examples/chronograf/logrotate.d
+@pkgdir etc/chronograf
diff --git a/chronograf/distinfo b/chronograf/distinfo
new file mode 100644
index 0000000000..5ab7052ced
--- /dev/null
+++ b/chronograf/distinfo
@@ -0,0 +1,11 @@
+$NetBSD$
+
+SHA1 (chronograf-1.7.7.tar.gz) = b192ef8e9ccd9419ae2a187dcf9cf963a34797e3
+RMD160 (chronograf-1.7.7.tar.gz) = b3bbcfe0814f0fc976a3c1be2675b98da6a80b73
+SHA512 (chronograf-1.7.7.tar.gz) = e8cbb9b1a95e9dac732493dab946cbe1e01a14cb03e20d0a459ba9af489ff8feb128e31a8867cd6936ddc7ffacc2e66a8242e19d9fee4b48c650dfdcad2e4c25
+Size (chronograf-1.7.7.tar.gz) = 34562596 bytes
+SHA1 (chronograf-dependencies-1.7.7.tar.gz) = bac347e4d9b828d478c38de6ea33ae5eccb298b6
+RMD160 (chronograf-dependencies-1.7.7.tar.gz) = 4961bc5f498181815af31f089891c10b138e9531
+SHA512 (chronograf-dependencies-1.7.7.tar.gz) = 4390ea826f9f2959b5fe5ad57d19817469dc5af569c90d127f382740ce00a75ea30bd73ac86671bf4180863331624738e372ae2319f7ebd8bd1966809c26ca14
+Size (chronograf-dependencies-1.7.7.tar.gz) = 43389651 bytes
+SHA1 (patch-Makefile) = 1db15c4569e39e9e77a2365741918c805ad3943f
diff --git a/chronograf/files/chronograf.sh b/chronograf/files/chronograf.sh
new file mode 100644
index 0000000000..ccb38cfe87
--- /dev/null
+++ b/chronograf/files/chronograf.sh
@@ -0,0 +1,22 @@
+#!@RCD_SCRIPTS_SHELL@
+
+# PROVIDE: chronograf
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+
+if [ -f /etc/rc.subr ]
+then
+        . /etc/rc.subr
+fi
+
+name="chronograf"
+rcvar=$name
+chronograf_user="@CHRONOGRAF_USER@"
+chronograf_group="@CHRONOGRAF_GROUP@"
+chronograf_chdir="@VARBASE@/lib/chronograf"
+STDERR="@LOGDIR@/chronograf.log"
+command="@PREFIX@/bin/chronograf"
+command_args="-r --canned-path=@RESOURCEDIR@/canned --protoboards-path=@RESOURCEDIR@/protoboards 1>/dev/null 2>> $STDERR &"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/chronograf/files/smf/manifest.xml b/chronograf/files/smf/manifest.xml
new file mode 100644
index 0000000000..49c0112009
--- /dev/null
+++ b/chronograf/files/smf/manifest.xml
@@ -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='@CHRONOGRAF_USER@' group='@CHRONOGRAF_GROUP@' />
+    </method_context>
+    <exec_method type='method' name='start'
+      exec='@PREFIX@/bin/chronograf -r --protoboards-path=@RESOURCEDIR@/protoboards --canned-path=@RESOURCEDIR@/canned 2>> @LOGDIR@/chronograf.log &amp;'
+      timeout_seconds="60" />
+    <exec_method type='method' name='stop' exec=':kill' timeout_seconds="60" />
+    <template>
+      <common_name>
+        <loctext xml:lang='C'>Kapacitor metrics monitoring agent</loctext>
+      </common_name>
+      <documentation>
+        <manpage title='chronograf' section='1' manpath='/@PREFIX@/man' />
+        <doc_link name='homepage' uri='https://docs.influxdata.com/chronograf/' />
+      </documentation>
+    </template>
+  </service>
+</service_bundle>
diff --git a/chronograf/patches/patch-Makefile b/chronograf/patches/patch-Makefile
new file mode 100644
index 0000000000..314526cc9c
--- /dev/null
+++ b/chronograf/patches/patch-Makefile
@@ -0,0 +1,86 @@
+$NetBSD$
+go becomes GO_BIN
+--- Makefile.orig	2019-01-16 21:16:18.000000000 +0000
++++ Makefile
+@@ -2,7 +2,7 @@
+ 
+ VERSION = 1.7.7
+ COMMIT ?= $(shell git rev-parse --short=8 HEAD)
+-GOBINDATA := $(shell go list -f {{.Root}}  github.com/kevinburke/go-bindata 2> /dev/null)
++GOBINDATA := $(shell ${GO_BIN} list -f {{.Root}}  github.com/kevinburke/go-bindata 2> /dev/null)
+ YARN := $(shell command -v yarn 2> /dev/null)
+ 
+ SOURCES := $(shell find . -name '*.go' ! -name '*_gen.go' -not -path "./vendor/*" )
+@@ -20,8 +20,8 @@ all: dep build
+ build: assets ${BINARY}
+ 
+ ${BINARY}: $(SOURCES) .bindata .jsdep .godep
+-	go build -o ${BINARY} ${LDFLAGS} ./cmd/chronograf/main.go
+-	go build -o ${CTLBINARY} ${LDFLAGS} ./cmd/chronoctl
++	${GO_BIN} build -o ${BINARY} ${LDFLAGS} ./cmd/chronograf/main.go
++	${GO_BIN} build -o ${CTLBINARY} ${LDFLAGS} ./cmd/chronoctl
+ 
+ define CHRONOGIRAFFE
+              ._ o o
+@@ -38,7 +38,7 @@ chronogiraffe: ${BINARY}
+ 	@echo "$$CHRONOGIRAFFE"
+ 
+ docker-${BINARY}: $(SOURCES)
+-	CGO_ENABLED=0 GOOS=linux go build -installsuffix cgo -o ${BINARY} ${LDFLAGS} \
++	CGO_ENABLED=0 GOOS=linux ${GO_BIN} build -installsuffix cgo -o ${BINARY} ${LDFLAGS} \
+ 		./cmd/chronograf/main.go
+ 
+ docker: dep assets docker-${BINARY}
+@@ -50,19 +50,19 @@ assets: .jssrc .bindata
+ 	@touch .bindata
+ 
+ dist/dist_gen.go: $(UISOURCES)
+-	go generate -x ./dist
++	${GO_BIN} generate -x ./dist
+ 
+ server/swagger_gen.go: server/swagger.json
+-	go generate -x ./server
++	${GO_BIN} generate -x ./server
+ 
+ canned/bin_gen.go: canned/*.json
+-	go generate -x ./canned
++	${GO_BIN} generate -x ./canned
+ 	
+ protoboards/bin_gen.go: protoboards/*.json
+-	go generate -x ./protoboards
++	${GO_BIN} generate -x ./protoboards
+ 
+ .jssrc: $(UISOURCES)
+-	cd ui && yarn run clean && yarn run build
++	cd ui && yarn --offline run clean && yarn --offline run build
+ 	@touch .jssrc
+ 
+ dep: .jsdep .godep
+@@ -70,7 +70,7 @@ dep: .jsdep .godep
+ .godep:
+ ifndef GOBINDATA
+ 	@echo "Installing go-bindata"
+-	go get -u github.com/kevinburke/go-bindata/go-bindata
++	${GO_BIN} get -u github.com/kevinburke/go-bindata/go-bindata
+ endif
+ 	@touch .godep
+ 
+@@ -85,15 +85,15 @@ endif
+ gen: internal.pb.go
+ 
+ internal.pb.go: bolt/internal/internal.proto
+-	go generate -x ./bolt/internal
++	${GO_BIN} generate -x ./bolt/internal
+ 
+ test: jstest gotest gotestrace lint-ci
+ 
+ gotest:
+-	go test -timeout 10s ./...
++	${GO_BIN} test -timeout 10s ./...
+ 
+ gotestrace:
+-	go test -race ./...
++	${GO_BIN} test -race ./...
+ 
+ jstest:
+ 	cd ui && yarn test --runInBand


Home | Main Index | Thread Index | Old Index