diff --git a/GIDs b/GIDs index de450397aa4f..6ad0be317d7d 100644 --- a/GIDs +++ b/GIDs @@ -420,7 +420,7 @@ fiche:*:477: prometheus:*:478: alertmanager:*:479: datadog:*:480: -# free: 481 +cloudprober:*:481: # free: 482 # free: 483 # free: 484 diff --git a/UIDs b/UIDs index f4aff0bc6d5f..fd4f0755e2a4 100644 --- a/UIDs +++ b/UIDs @@ -425,7 +425,7 @@ fiche:*:477:477::0:0:fiche Daemon:/usr/local/www/fiche:/usr/sbin/nologin prometheus:*:478:478::0:0:Prometheus Daemon:/var/tmp/prometheus:/usr/sbin/nologin alertmanager:*:479:479::0:0:Alertmanager Daemon:/var/tmp/alertmanager:/usr/sbin/nologin datadog:*:480:480::0:0:DataDog Agent:/var/db/datadog:/usr/sbin/nologin -# free: 481 +cloudprober:*:481:481::0:0:Cloudprober Daemon:/var/tmp/cloudprober:/usr/sbin/nologin # free: 482 # free: 483 # free: 484 diff --git a/net-mgmt/cloudprober/Makefile b/net-mgmt/cloudprober/Makefile new file mode 100644 index 000000000000..6d69c7c25b67 --- /dev/null +++ b/net-mgmt/cloudprober/Makefile @@ -0,0 +1,79 @@ +# Created by: Frans-Jan van Steenbeek +# $FreeBSD$ + +PORTNAME= cloudprober +DISTVERSIONPREFIX= v +DISTVERSION= 0.11.2 +CATEGORIES= net-mgmt + +MAINTAINER= frans-jan@van-steenbeek.net +COMMENT= Active cloud-native monitoring system that integrates with Prometheus + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules +USE_GITHUB= yes +GH_ACCOUNT= google + +GO_TARGET= ./cmd + +USERS= cloudprober +GROUPS= cloudprober + +SUB_FILES= pkg-message + +GH_TUPLE= \ + aws:aws-sdk-go:v1.35.7:aws_aws_sdk_go/vendor/github.com/aws/aws-sdk-go \ + census-instrumentation:opencensus-go:v0.22.5:census_instrumentation_opencensus_go/vendor/go.opencensus.io \ + golang:appengine:v1.6.7:golang_appengine/vendor/google.golang.org/appengine \ + golang:crypto:84dcc777aaee:golang_crypto/vendor/golang.org/x/crypto \ + golang:glog:23def4e6c14b:golang_glog/vendor/github.com/golang/glog \ + golang:groupcache:8c9f03a8e57e:golang_groupcache/vendor/github.com/golang/groupcache \ + golang:lint:738671d3881b:golang_lint/vendor/golang.org/x/lint \ + golang:mod:v0.3.0:golang_mod/vendor/golang.org/x/mod \ + golang:net:4f7140c49acb:golang_net/vendor/golang.org/x/net \ + golang:oauth2:5d25da1a8d43:golang_oauth2/vendor/golang.org/x/oauth2 \ + golang:protobuf:v1.5.1:golang_protobuf/vendor/github.com/golang/protobuf \ + golang:sync:b3e1573b7520:golang_sync/vendor/golang.org/x/sync \ + golang:sys:2da7054afaeb:golang_sys/vendor/golang.org/x/sys \ + golang:text:v0.3.3:golang_text/vendor/golang.org/x/text \ + golang:tools:64a9e34f3752:golang_tools/vendor/golang.org/x/tools \ + golang:xerrors:5ec99f83aff1:golang_xerrors/vendor/golang.org/x/xerrors \ + google:go-cmp:v0.5.5:google_go_cmp/vendor/github.com/google/go-cmp \ + google:go-genproto:7f9ee70cb474:google_go_genproto/vendor/google.golang.org/genproto \ + google:shlex:e7afc7fbc510:google_shlex/vendor/github.com/google/shlex \ + googleapis:gax-go:v2.0.5:googleapis_gax_go_v2/vendor/github.com/googleapis/gax-go \ + googleapis:google-api-go-client:v0.33.0:googleapis_google_api_go_client/vendor/google.golang.org/api \ + googleapis:google-cloud-go:bigquery/v1.8.0:googleapis_google_cloud_go_bigquery \ + googleapis:google-cloud-go:logging/v1.1.0:googleapis_google_cloud_go_logging \ + googleapis:google-cloud-go:pubsub/v1.8.1:googleapis_google_cloud_go_pubsub \ + googleapis:google-cloud-go:v0.68.0:googleapis_google_cloud_go/vendor/cloud.google.com/go \ + grpc:grpc-go:v1.33.1:grpc_grpc_go/vendor/google.golang.org/grpc \ + hashicorp:golang-lru:v0.5.3:hashicorp_golang_lru/vendor/github.com/hashicorp/golang-lru \ + hoisie:redis:b5c6e81454e0:hoisie_redis/vendor/github.com/hoisie/redis \ + jmespath:go-jmespath:v0.4.0:jmespath_go_jmespath/vendor/github.com/jmespath/go-jmespath \ + jstemmer:go-junit-report:v0.9.1:jstemmer_go_junit_report/vendor/github.com/jstemmer/go-junit-report \ + kylelemons:godebug:v1.1.0:kylelemons_godebug/vendor/github.com/kylelemons/godebug \ + lib:pq:v1.8.0:lib_pq/vendor/github.com/lib/pq \ + miekg:dns:v1.1.33:miekg_dns/vendor/github.com/miekg/dns \ + protocolbuffers:protobuf-go:v1.26.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf + +post-extract: + @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/bigquery + @${RLN} ${WRKSRC_googleapis_google_cloud_go_bigquery}/bigquery ${WRKSRC}/vendor/cloud.google.com/go/bigquery + @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/logging + @${RLN} ${WRKSRC_googleapis_google_cloud_go_logging}/logging ${WRKSRC}/vendor/cloud.google.com/go/logging + @${RM} -r ${WRKSRC}/vendor/cloud.google.com/go/pubsub + @${RLN} ${WRKSRC_googleapis_google_cloud_go_pubsub}/pubsub ${WRKSRC}/vendor/cloud.google.com/go/pubsub + +post-install: + @${MV} ${STAGEDIR}${PREFIX}/bin/cmd ${STAGEDIR}${PREFIX}/bin/cloudprober + @${MKDIR} ${STAGEDIR}${PREFIX}/etc/cloudprober + ${INSTALL_DATA} \ + ${FILESDIR}/cloudprober.cfg.sample \ + ${STAGEDIR}${PREFIX}/etc/cloudprober/cloudprober.cfg.sample + +USE_RC_SUBR= cloudprober + +.include diff --git a/net-mgmt/cloudprober/distinfo b/net-mgmt/cloudprober/distinfo new file mode 100644 index 000000000000..ddc3e07cb729 --- /dev/null +++ b/net-mgmt/cloudprober/distinfo @@ -0,0 +1,71 @@ +TIMESTAMP = 1618584979 +SHA256 (google-cloudprober-v0.11.2_GH0.tar.gz) = 05ad964d6efa665d3decef79f51cc6a6f0d0324698105fd431edb58d57af57c9 +SIZE (google-cloudprober-v0.11.2_GH0.tar.gz) = 9002017 +SHA256 (aws-aws-sdk-go-v1.35.7_GH0.tar.gz) = 42a9ec278664e9ba6236dd3090a138402b4230c4c6111294781b6272ccdb1bb6 +SIZE (aws-aws-sdk-go-v1.35.7_GH0.tar.gz) = 16331691 +SHA256 (census-instrumentation-opencensus-go-v0.22.5_GH0.tar.gz) = 881df0d24a0df8afacd2228d4987252f742061fe8eeb5f14cc9e3f32b7c357be +SIZE (census-instrumentation-opencensus-go-v0.22.5_GH0.tar.gz) = 171403 +SHA256 (golang-appengine-v1.6.7_GH0.tar.gz) = c623d81235f7c9699e299b328191d813337dd57dcc800d7afdb5130e8c321a8f +SIZE (golang-appengine-v1.6.7_GH0.tar.gz) = 333007 +SHA256 (golang-crypto-84dcc777aaee_GH0.tar.gz) = 261ccb9a23e584ec326e69b2ec73b26bcb108be9ac9074f77cd331ee720a96a1 +SIZE (golang-crypto-84dcc777aaee_GH0.tar.gz) = 1732584 +SHA256 (golang-glog-23def4e6c14b_GH0.tar.gz) = 528b6072aa1c5dc69325bd6f057940ba8908703542ec5689b64b98e72c48588b +SIZE (golang-glog-23def4e6c14b_GH0.tar.gz) = 19660 +SHA256 (golang-groupcache-8c9f03a8e57e_GH0.tar.gz) = b92f918daa48048fd360f14d1a4aed6e70c1176ae6b00b0dc04094bb088e9865 +SIZE (golang-groupcache-8c9f03a8e57e_GH0.tar.gz) = 26047 +SHA256 (golang-lint-738671d3881b_GH0.tar.gz) = c3c30939f0592da3a4b470afd40cdf2924a2749e251b4188f53a918445fb67b4 +SIZE (golang-lint-738671d3881b_GH0.tar.gz) = 31848 +SHA256 (golang-mod-v0.3.0_GH0.tar.gz) = bc97bb300928a00cfe64d97b3240c760668060cda0767e0d0b413e506fc3fa0a +SIZE (golang-mod-v0.3.0_GH0.tar.gz) = 93941 +SHA256 (golang-net-4f7140c49acb_GH0.tar.gz) = be2fc56921190e62174ae39ad3bb741fdf9b42ea6074c78a25c949cd467968d2 +SIZE (golang-net-4f7140c49acb_GH0.tar.gz) = 1178061 +SHA256 (golang-oauth2-5d25da1a8d43_GH0.tar.gz) = 359a1ce0493a717f0d30e964d6ebfedca99becdd188383c4853a5010ffc36feb +SIZE (golang-oauth2-5d25da1a8d43_GH0.tar.gz) = 59450 +SHA256 (golang-protobuf-v1.5.1_GH0.tar.gz) = d6f2c6973d08e6701c41e6c0afc381c985270ad8050c7819da197b258ac8959d +SIZE (golang-protobuf-v1.5.1_GH0.tar.gz) = 171617 +SHA256 (golang-sync-b3e1573b7520_GH0.tar.gz) = 0bd8ada7783ab13dfceabe12adb8a2ade02b388d36107a4ec7a9e98b6c08d763 +SIZE (golang-sync-b3e1573b7520_GH0.tar.gz) = 18989 +SHA256 (golang-sys-2da7054afaeb_GH0.tar.gz) = 46003d13c287ea0e86c589cb2e67de676d6665822700fe2b78d1017e61831c5e +SIZE (golang-sys-2da7054afaeb_GH0.tar.gz) = 1068005 +SHA256 (golang-text-v0.3.3_GH0.tar.gz) = 1604233637e3593749fbbb13b5069b08e6feba6d2b55a02fd3148793d5871185 +SIZE (golang-text-v0.3.3_GH0.tar.gz) = 7747332 +SHA256 (golang-tools-64a9e34f3752_GH0.tar.gz) = b0d25d1bca153b07d46b2fa04ff215ee1602c1aa5bf608871ca0cbc3ac5a8324 +SIZE (golang-tools-64a9e34f3752_GH0.tar.gz) = 2604085 +SHA256 (golang-xerrors-5ec99f83aff1_GH0.tar.gz) = 71975d658357e170fd6a41f92539cde8b39c9cd8bfe5931b6311bc5f5c0da0d7 +SIZE (golang-xerrors-5ec99f83aff1_GH0.tar.gz) = 13664 +SHA256 (google-go-cmp-v0.5.5_GH0.tar.gz) = 8f1a0041f484812ae219e7548a13d5269c947cfcdea6031d40cdc85cd0663b3e +SIZE (google-go-cmp-v0.5.5_GH0.tar.gz) = 102358 +SHA256 (google-go-genproto-7f9ee70cb474_GH0.tar.gz) = 86dfe9993c77909df2e9f096e07677747377dae609f3f6729976751b1aeb38f8 +SIZE (google-go-genproto-7f9ee70cb474_GH0.tar.gz) = 13350765 +SHA256 (google-shlex-e7afc7fbc510_GH0.tar.gz) = 87f77e98720add261add169e386cbdcc894e2635dca299bc4119dc417ea321ca +SIZE (google-shlex-e7afc7fbc510_GH0.tar.gz) = 7342 +SHA256 (googleapis-gax-go-v2.0.5_GH0.tar.gz) = 3089affe6f5e27f7a6d494cb399aa6baf232384f763f548ad5ddfbea0e88e59c +SIZE (googleapis-gax-go-v2.0.5_GH0.tar.gz) = 15328 +SHA256 (googleapis-google-api-go-client-v0.33.0_GH0.tar.gz) = c73839f4146fd47bc211629ee9f42069456e4621d641bdff4791b7cb14bfbf74 +SIZE (googleapis-google-api-go-client-v0.33.0_GH0.tar.gz) = 16652265 +SHA256 (googleapis-google-cloud-go-bigquery-v1.8.0_GH0.tar.gz) = 53f0daa8824c4b6b1d3b2cad025af03c56604bd866ed79670b685aa4bcb1e9f2 +SIZE (googleapis-google-cloud-go-bigquery-v1.8.0_GH0.tar.gz) = 2747249 +SHA256 (googleapis-google-cloud-go-logging-v1.1.0_GH0.tar.gz) = 859342c4f920845d3bc25604d9a0474850885de436eee46383f7040648ff980e +SIZE (googleapis-google-cloud-go-logging-v1.1.0_GH0.tar.gz) = 2859535 +SHA256 (googleapis-google-cloud-go-pubsub-v1.8.1_GH0.tar.gz) = 1ba48c182bb3bcec37bffb1f206ce7b1455c37c3577977e6be676fad22187c6f +SIZE (googleapis-google-cloud-go-pubsub-v1.8.1_GH0.tar.gz) = 3019348 +SHA256 (googleapis-google-cloud-go-v0.68.0_GH0.tar.gz) = 618bb9722260ea769df1d4edbdc4dc37d9033a6417069eb95a88ed92ef7600b4 +SIZE (googleapis-google-cloud-go-v0.68.0_GH0.tar.gz) = 3017848 +SHA256 (grpc-grpc-go-v1.33.1_GH0.tar.gz) = 8dde7ad1586c62dba76486851e6680bdc6858eef89a706a284aa312370720b9a +SIZE (grpc-grpc-go-v1.33.1_GH0.tar.gz) = 1085986 +SHA256 (hashicorp-golang-lru-v0.5.3_GH0.tar.gz) = dd98197fc84fbf636b6811ff3c14ef1ea0fe732fe782b8034cf082b3ff274af3 +SIZE (hashicorp-golang-lru-v0.5.3_GH0.tar.gz) = 13348 +SHA256 (hoisie-redis-b5c6e81454e0_GH0.tar.gz) = be8c9a0f93535e8d5f4fc470c9ba4c069ef86188530976f8e4aa174ccb06c228 +SIZE (hoisie-redis-b5c6e81454e0_GH0.tar.gz) = 12485 +SHA256 (jmespath-go-jmespath-v0.4.0_GH0.tar.gz) = aa86d00b6836345eee196c13df2df084a18e0b1159935de9289f2ef6a7fe375d +SIZE (jmespath-go-jmespath-v0.4.0_GH0.tar.gz) = 128861 +SHA256 (jstemmer-go-junit-report-v0.9.1_GH0.tar.gz) = 4999e6d8feefe5b89eb9c2b3845a3c0ecdb6f0b0ba4e9785567a43f8952fff15 +SIZE (jstemmer-go-junit-report-v0.9.1_GH0.tar.gz) = 17764 +SHA256 (kylelemons-godebug-v1.1.0_GH0.tar.gz) = 72cc6f274fbd165b7674280f836a6b400e80dbae055919e101920dedf50e79db +SIZE (kylelemons-godebug-v1.1.0_GH0.tar.gz) = 17637 +SHA256 (lib-pq-v1.8.0_GH0.tar.gz) = bd13c7ba79f48a1462cdb6f124948453e2f6fc565f3f9a3850618775189bca59 +SIZE (lib-pq-v1.8.0_GH0.tar.gz) = 101945 +SHA256 (miekg-dns-v1.1.33_GH0.tar.gz) = f3c2b2e13f29b26a4d0120eb2deabd3ab25f656212a0feab24596c1581c0499e +SIZE (miekg-dns-v1.1.33_GH0.tar.gz) = 197845 +SHA256 (protocolbuffers-protobuf-go-v1.26.0_GH0.tar.gz) = 26218474bcf776ecf32d7d194c6bfaca8e7b4f0c087e5b595fd50fbb31409676 +SIZE (protocolbuffers-protobuf-go-v1.26.0_GH0.tar.gz) = 1270215 diff --git a/net-mgmt/cloudprober/files/cloudprober.cfg.sample b/net-mgmt/cloudprober/files/cloudprober.cfg.sample new file mode 100644 index 000000000000..0321803607b8 --- /dev/null +++ b/net-mgmt/cloudprober/files/cloudprober.cfg.sample @@ -0,0 +1,9 @@ +probe { + name: "google_homepage" + type: HTTP + targets { + host_names: "www.google.com" + } + interval_msec: 5000 # 5s + timeout_msec: 1000 # 1s +} diff --git a/net-mgmt/cloudprober/files/cloudprober.in b/net-mgmt/cloudprober/files/cloudprober.in new file mode 100644 index 000000000000..dcc8e664181b --- /dev/null +++ b/net-mgmt/cloudprober/files/cloudprober.in @@ -0,0 +1,60 @@ +#!/bin/sh + +# PROVIDE: cloudprober +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# cloudprober_enable (bool): Set to NO by default +# Set it to YES to enable cloudprober +# cloudprober_user (string): Set user to run cloudprober +# Default is "cloudprober" +# cloudprober_group (string): Set group to run cloudprober +# Default is "cloudprober" +# cloudprober_config (string): The configuration file +# Default is "%%PREFIX%%/etc/cloudprober/cloudprober.cfg" +# cloudprober_log_file (string): Set file that cloudprober will log to +# Default is "/dev/null" +# cloudprober_args (string): Set additional command line arguments +# Default is "" + +. /etc/rc.subr + +name=cloudprober +rcvar=cloudprober_enable + +load_rc_config $name + +: ${cloudprober_enable:="NO"} +: ${cloudprober_user:="cloudprober"} +: ${cloudprober_group:="cloudprober"} +: ${cloudprober_config:="%%PREFIX%%/etc/cloudprober/cloudprober.cfg"} +: ${cloudprober_log_file:="/dev/null"} +: ${cloudprober_args:=""} + +pidfile=/var/run/cloudprober.pid +required_files="${cloudprober_config}" +command="/usr/sbin/daemon" +procname="%%PREFIX%%/bin/cloudprober" +sig_reload=HUP +extra_commands="reload" +command_args="-p ${pidfile} /usr/bin/env ${procname} \ + -config_file ${cloudprober_config} \ + ${cloudprober_args} > ${cloudprober_log_file} 2>&1" + +start_precmd=cloudprober_precmd + +cloudprober_precmd() +{ + if [ ! -e ${pidfile} ]; then + install -o ${cloudprober_user} -g ${cloudprober_group} /dev/null ${pidfile} + fi + if [ ! -w ${cloudprober_log_file} ]; then + install -o ${cloudprober_user} -g ${cloudprober_group} -m 640 /dev/null ${cloudprober_log_file} + fi +} + +load_rc_config $name +run_rc_command "$1" diff --git a/net-mgmt/cloudprober/files/pkg-message.in b/net-mgmt/cloudprober/files/pkg-message.in new file mode 100644 index 000000000000..be57a5fc400a --- /dev/null +++ b/net-mgmt/cloudprober/files/pkg-message.in @@ -0,0 +1,16 @@ +[ +{ type: install + message: <