From b4b300bce9db4698d9e9b0d778f7ae741e36ca3c Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 03:23:19 +0300 Subject: [PATCH 01/13] Added: Dockerfile for go-app --- Dockerfile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..520b5a6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# syntax=docker/dockerfile:1 + +FROM golang:1.16-alpine + +WORKDIR /app + +COPY go.mod ./ +COPY go.sum ./ +RUN go get github.com/prometheus/client_golang/prometheus/promhttp +RUN go mod download + +COPY *.go ./ + +RUN go build -o /go-app +EXPOSE 8080 + +CMD [ "/go-app" ] \ No newline at end of file From c0b10a4af4b63e7966489e996810945e14766d2b Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 03:47:21 +0300 Subject: [PATCH 02/13] Added: monitoring build files --- docker-compose.yml | 56 ++++++++++++++++++ go-compose.yml | 19 ++++++ go_app/Dockerfile | 17 ++++++ go_app/go.mod | 11 ++++ go_app/go.sum | 120 ++++++++++++++++++++++++++++++++++++++ go_app/main.go | 59 +++++++++++++++++++ prometheus/prometheus.yml | 41 +++++++++++++ 7 files changed, 323 insertions(+) create mode 100644 docker-compose.yml create mode 100644 go-compose.yml create mode 100644 go_app/Dockerfile create mode 100644 go_app/go.mod create mode 100644 go_app/go.sum create mode 100644 go_app/main.go create mode 100644 prometheus/prometheus.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e4c4e96 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,56 @@ +version: "3" +services: + mongodb: + image: mongo + ports: + - "27017:27017" + container_name: bookmark-mongodb + networks: + - monitornet + node: + image: node:8-alpine + networks: + - monitornet + volumes: + - ./web:/web + - /tmp:/tmp + grafana: + image: grafana/grafana:5.1.0 + volumes: + - grafana_data:/var/lib/grafana + environment: + - GF_SECURITY_ADMIN_USER=admin + - GF_SECURITY_ADMIN_PASSWORD=adminpass + ports: + - "3000:3000" + container_name: bookmark-grafana + networks: + - monitornet + depends_on: + - prometheus + - prometheus-pushgateway + prometheus: + image: prom/prometheus + ports: + - "9090:9090" + command: + - --config.file=/etc/prometheus/prometheus.yml + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro + container_name: bookmark-prometheus + networks: + - monitornet + prometheus-pushgateway: + image: prom/pushgateway + container_name: bookmark-pushgateway + expose: + - 9091 + ports: + - "9091:9091" + +volumes: + grafana_data: + +networks: + monitornet: + driver: bridge \ No newline at end of file diff --git a/go-compose.yml b/go-compose.yml new file mode 100644 index 0000000..3148924 --- /dev/null +++ b/go-compose.yml @@ -0,0 +1,19 @@ +version: "3" +services: + go_app: + build: + dockerfile: go_app/Dockerfile + context: . + networks: + - monitornet + expose: + - 8080 + ports: + - "8080:8080" + container_name: bookmark-go-app + environment: + - APP_PUSH_GATEWAY=http://prom-pushgateway:9091 + +networks: + monitornet: + driver: bridge \ No newline at end of file diff --git a/go_app/Dockerfile b/go_app/Dockerfile new file mode 100644 index 0000000..d37231b --- /dev/null +++ b/go_app/Dockerfile @@ -0,0 +1,17 @@ +# syntax=docker/dockerfile:1 + +FROM golang:1.16-alpine + +WORKDIR /app + +COPY go_app/go.mod ./ +COPY go_app/go.sum ./ +RUN go get github.com/prometheus/client_golang/prometheus/promhttp +RUN go mod download + +COPY go_app/*.go ./ + +RUN go build -o /go-app +EXPOSE 8080 + +CMD [ "/go-app" ] \ No newline at end of file diff --git a/go_app/go.mod b/go_app/go.mod new file mode 100644 index 0000000..4ac6113 --- /dev/null +++ b/go_app/go.mod @@ -0,0 +1,11 @@ +module github.com/nuggien/devops_test + +go 1.16 + +require ( + github.com/go-redis/redis/v8 v8.11.2 + github.com/julienschmidt/httprouter v1.3.0 + github.com/lib/pq v1.10.2 + github.com/rs/cors v1.8.0 + go.uber.org/zap v1.19.0 +) diff --git a/go_app/go.sum b/go_app/go.sum new file mode 100644 index 0000000..8ea9e46 --- /dev/null +++ b/go_app/go.sum @@ -0,0 +1,120 @@ +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= +github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= +github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= +github.com/go-redis/redis/v8 v8.11.2 h1:WqlSpAwz8mxDSMCvbyz1Mkiqe0LE5OY4j3lgkvu1Ts0= +github.com/go-redis/redis/v8 v8.11.2/go.mod h1:DLomh7y2e3ggQXQLd1YgmvIfecPJoFl7WU5SOQ/r06M= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= +github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8= +github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rs/cors v1.8.0 h1:P2KMzcFwrPoSjkF1WLRPsp3UMLyql8L4v9hQpVeK5so= +github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE= +go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/go_app/main.go b/go_app/main.go new file mode 100644 index 0000000..ac585ba --- /dev/null +++ b/go_app/main.go @@ -0,0 +1,59 @@ +package main + +import ( + "context" + "fmt" + "log" + "net/http" + "os" + "github.com/go-redis/redis/v8" + "github.com/julienschmidt/httprouter" + "go.uber.org/zap" + "time" +) + +type server struct { + redis redis.UniversalClient + logger *zap.Logger +} + +func main() { + logger, err := zap.NewProduction() + if err != nil { + log.Fatal("unable to initialize logger") + } + + rdb := redis.NewUniversalClient(&redis.UniversalOptions{ + Addrs: []string{os.Getenv("REDIS_ADDR")}, + Password: "", + DB: 0, + }) + + srv := &server{ + redis: rdb, + logger: logger, + } + + router := httprouter.New() + + router.GET("/", srv.indexHandler) + + logger.Info("server started on port 8080") + log.Fatal(http.ListenAndServe(":8080", router)) + +} + +func (s *server) indexHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { + var v string + var err error + if v, err = s.redis.Get(context.Background(), "updated_time").Result(); err != nil { + s.logger.Info("updated_time not found, setting it") + v = time.Now().Format("2006-01-02 03:04:05") + s.redis.Set(context.Background(), "updated_time", v, 5*time.Second) + } else { + s.logger.Info("got updated_time") + } + + w.WriteHeader(http.StatusOK) + fmt.Fprintf(w, "hello world: updated_time=%s\n", v) +} \ No newline at end of file diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml new file mode 100644 index 0000000..b8160b1 --- /dev/null +++ b/prometheus/prometheus.yml @@ -0,0 +1,41 @@ +# my global config +global: + scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. + evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. + +# Alertmanager configuration +alerting: + alertmanagers: + - static_configs: + - targets: + # - alertmanager:9093 + +# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. +rule_files: + +# A scrape configuration containing exactly one endpoint to scrape: +# Here it's Prometheus itself. +scrape_configs: + - job_name: go-app + metrics_path: / + scheme: http + scrape_interval: 10s + static_configs: + - targets: + - 172.26.232.6:8080 + labels: + group: 'applications' + + - job_name: prometheus + metrics_path: /metrics + scrape_interval: 10s + static_configs: + - targets: + - 172.26.232.6:9090 + + - job_name: promgateway + metrics_path: /metrics + scrape_interval: 10s + static_configs: + - targets: + - 172.26.232.6:9091 \ No newline at end of file From 3c11abe4324a7aa5271e934b5cdb2d9fc5cf4c44 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 04:54:00 +0300 Subject: [PATCH 03/13] Update add only .env if need IP --- docker-compose.yml | 11 ++++++++++- env | 1 + go-compose.yml | 2 +- prometheus/prometheus.yml | 23 ++++++++++++++++++++--- 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 env diff --git a/docker-compose.yml b/docker-compose.yml index e4c4e96..47e5f1a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -47,7 +47,16 @@ services: - 9091 ports: - "9091:9091" - +# cadvisor: +# image: gcr.io/cadvisor/cadvisor:v0.43.0 +# volumes: +# - '/:/rootfs:ro' +# - '/var/run:/var/run:rw' +# - '/sys:/sys:ro' +# - '/var/lib/docker/:/var/lib/docker:ro' +# ports: +# - "8080:8080" + volumes: grafana_data: diff --git a/env b/env new file mode 100644 index 0000000..4a62e32 --- /dev/null +++ b/env @@ -0,0 +1 @@ +IP_HOST=172.26.232.6 \ No newline at end of file diff --git a/go-compose.yml b/go-compose.yml index 3148924..0b3b36b 100644 --- a/go-compose.yml +++ b/go-compose.yml @@ -12,7 +12,7 @@ services: - "8080:8080" container_name: bookmark-go-app environment: - - APP_PUSH_GATEWAY=http://prom-pushgateway:9091 + - APP_PUSH_GATEWAY=http://${IP_HOST}:9091 networks: monitornet: diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml index b8160b1..97de11d 100644 --- a/prometheus/prometheus.yml +++ b/prometheus/prometheus.yml @@ -10,6 +10,7 @@ alerting: - targets: # - alertmanager:9093 + # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: @@ -22,7 +23,7 @@ scrape_configs: scrape_interval: 10s static_configs: - targets: - - 172.26.232.6:8080 + - ${IP_HOST}:8080 labels: group: 'applications' @@ -31,11 +32,27 @@ scrape_configs: scrape_interval: 10s static_configs: - targets: - - 172.26.232.6:9090 + - ${IP_HOST}:9090 + - ${IP_HOST}:9115 - job_name: promgateway metrics_path: /metrics scrape_interval: 10s static_configs: - targets: - - 172.26.232.6:9091 \ No newline at end of file + - ${IP_HOST}:9091 + + - job_name: blackbox + metrics_path: /probe + params: + module: [http_2xx] + static_configs: + - targets: + - ${IP_HOST}:8080 + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ + replacement: ${IP_HOST}:9115 \ No newline at end of file From f4e4085cd34bc5f9459286fa6d38ec7ac2960a87 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:26:28 +0300 Subject: [PATCH 04/13] Update README.md --- README.md | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index dd49286..779c189 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,33 @@ # Devops Test -### Overview -This is an application that is a dummy webservice that returns the -last update time. The last updated time is cached in redis and -resets every 5 seconds. It has a single '/' endpoint. The redis -address is passed in through the environment. +### Preparation +1. Rename file .env and change IP address +2. Add IP from Vault or change in the file _prometheus/prometheus.yml_ -NOTE: The following tasks should take no more than 1 hour total. +### Run monitoring resources +1. We need to create infrastructure with to commands +Create __Prometheus__, __Prometheus gateway__, __Grafana__ +~~~ +# sudo docker-compose -f gocker-compose.yml up -d +~~~ +Create __Go application__ +~~~ +# sudo docker-compose -f go-compose.yml up -d +~~~ -### Tasks -1. create Dockerfile for this application -2. create docker-compose.yaml to replicate a full running environment -so that a developer can run the entire application locally without having -to run any dependencies (i.e. redis) in a separate process. -3. explain how you would monitor this application in production. Please -write code to do the monitoring. +2. Check installation +__Prometheus__ {IP address}:9090 +__Prometheus gateway__ {IP address}:9091 +__Grafana__ {IP address}:3000 +__Go application__ {IP address}:8080 -Please fork this repository and make a pull request with your changes. +3. Check targets +Go to __Prometheus -> targets__ +```State = UP``` - it is normal +For __Go application__ ```State = Down``` - also normal, if error ```strconv.ParseFloat: parsing "world:": invalid syntax``` + +4. Check __Prometheus pushgatway__ +Sent from console of PC +~~~ +echo -e 'job_successful 100.0\njob_failed 0.0' | curl --data-binary @- http://localhost:9091/metrics/job/go_app_job +~~~ From 20d13d240c1ae8734d67a0eb24b71669d5f52a06 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:27:47 +0300 Subject: [PATCH 05/13] Prometheus doen't understand env variables --- prometheus/prometheus.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml index 97de11d..d49125b 100644 --- a/prometheus/prometheus.yml +++ b/prometheus/prometheus.yml @@ -23,7 +23,7 @@ scrape_configs: scrape_interval: 10s static_configs: - targets: - - ${IP_HOST}:8080 + - 172.26.232.6:8080 labels: group: 'applications' @@ -32,15 +32,15 @@ scrape_configs: scrape_interval: 10s static_configs: - targets: - - ${IP_HOST}:9090 - - ${IP_HOST}:9115 + - 172.26.232.6:9090 + - 172.26.232.6:9115 - job_name: promgateway metrics_path: /metrics scrape_interval: 10s static_configs: - targets: - - ${IP_HOST}:9091 + - 172.26.232.6:9091 - job_name: blackbox metrics_path: /probe @@ -48,11 +48,11 @@ scrape_configs: module: [http_2xx] static_configs: - targets: - - ${IP_HOST}:8080 + - 172.26.232.6:8080 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ - replacement: ${IP_HOST}:9115 \ No newline at end of file + replacement: 172.26.232.6:9115 \ No newline at end of file From 0ed2d0bdff513e2bdb301bc10ba0a2fdbed5fb50 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:36:47 +0300 Subject: [PATCH 06/13] Images --- img/Grafana_dash.jpg | Bin 0 -> 56266 bytes img/prom_targets.jpg | Bin 0 -> 158658 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/Grafana_dash.jpg create mode 100644 img/prom_targets.jpg diff --git a/img/Grafana_dash.jpg b/img/Grafana_dash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f1c99205b7a36f2eb1293fef17f0495942083489 GIT binary patch literal 56266 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­((n!P}de_0SEjySZ^I@BQk& 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 literal 0 HcmV?d00001 diff --git a/img/prom_targets.jpg b/img/prom_targets.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09c18c3461275bd0c98b638cb325445b028dc082 GIT binary patch literal 158658 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

Y2;xr3T0Kjqv=^Yn)mn@nRk+&< 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 QIr2X@Yv#Z8nb1n_U!iv-EC2ui literal 0 HcmV?d00001 From b0bd11e47720641bd0b4a49c56dc976526d1be8c Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:37:00 +0300 Subject: [PATCH 07/13] Update README.md --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 779c189..c9bc4d9 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,16 @@ __Go application__ {IP address}:8080 3. Check targets Go to __Prometheus -> targets__ ```State = UP``` - it is normal -For __Go application__ ```State = Down``` - also normal, if error ```strconv.ParseFloat: parsing "world:": invalid syntax``` +For __Go application__ ```State = Down``` - also normal, if error ```strconv.ParseFloat: parsing "world:": invalid syntax``` + +![Targets](img/prom_targets.jpg) 4. Check __Prometheus pushgatway__ Sent from console of PC ~~~ echo -e 'job_successful 100.0\njob_failed 0.0' | curl --data-binary @- http://localhost:9091/metrics/job/go_app_job ~~~ + +5. Grafana + +![Targets](img/Grafana_dash.jpg) From 26bdc2dee2d6bf0b8159f34cc083aefe11209cfd Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:40:34 +0300 Subject: [PATCH 08/13] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index c9bc4d9..86ea03c 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,9 @@ echo -e 'job_successful 100.0\njob_failed 0.0' | curl --data-binary @- http://l 5. Grafana ![Targets](img/Grafana_dash.jpg) + + +### P.S. What next? + +We could proceed to add blackbox for the monitoring of the web (like Go application too) +Can add alertmanager and setup Jenkins for starting of jobs for a schedule From d2466ebc12236fbed9c8604b7967c4117fe02be5 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:44:15 +0300 Subject: [PATCH 09/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86ea03c..e5f1700 100644 --- a/README.md +++ b/README.md @@ -42,4 +42,4 @@ echo -e 'job_successful 100.0\njob_failed 0.0' | curl --data-binary @- http://l ### P.S. What next? We could proceed to add blackbox for the monitoring of the web (like Go application too) -Can add alertmanager and setup Jenkins for starting of jobs for a schedule +Can add alertmanager and setup Jenkins for starting of jobs for a schedule. It helps to sent pushes to Prometheus pushgateway From 8ca9ac6bce2bcde333976dccd564cb591da4a1ae Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:45:32 +0300 Subject: [PATCH 10/13] Delete go.mod --- go.mod | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 go.mod diff --git a/go.mod b/go.mod deleted file mode 100644 index 4ac6113..0000000 --- a/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module github.com/nuggien/devops_test - -go 1.16 - -require ( - github.com/go-redis/redis/v8 v8.11.2 - github.com/julienschmidt/httprouter v1.3.0 - github.com/lib/pq v1.10.2 - github.com/rs/cors v1.8.0 - go.uber.org/zap v1.19.0 -) From b7e8c0ee399d0c632e3768b686193bd5b70c9181 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:45:40 +0300 Subject: [PATCH 11/13] Delete main.go --- main.go | 58 --------------------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 main.go diff --git a/main.go b/main.go deleted file mode 100644 index 8e50be4..0000000 --- a/main.go +++ /dev/null @@ -1,58 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "net/http" - "os" - "github.com/go-redis/redis/v8" - "github.com/julienschmidt/httprouter" - "go.uber.org/zap" - "time" -) - -type server struct { - redis redis.UniversalClient - logger *zap.Logger -} - -func main() { - logger, err := zap.NewProduction() - if err != nil { - log.Fatal("unable to initialize logger") - } - - rdb := redis.NewUniversalClient(&redis.UniversalOptions{ - Addrs: []string{os.Getenv("REDIS_ADDR")}, - Password: "", - DB: 0, - }) - - srv := &server{ - redis: rdb, - logger: logger, - } - - router := httprouter.New() - - router.GET("/", srv.indexHandler) - - logger.Info("server started on port 8080") - log.Fatal(http.ListenAndServe(":8080", router)) -} - -func (s *server) indexHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { - var v string - var err error - if v, err = s.redis.Get(context.Background(), "updated_time").Result(); err != nil { - s.logger.Info("updated_time not found, setting it") - v = time.Now().Format("2006-01-02 03:04:05") - s.redis.Set(context.Background(), "updated_time", v, 5*time.Second) - } else { - s.logger.Info("got updated_time") - } - - w.WriteHeader(http.StatusOK) - fmt.Fprintf(w, "hello world: updated_time=%s\n", v) -} \ No newline at end of file From 301440042c0912e71d735aa8a2ab0c16418ff601 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:45:49 +0300 Subject: [PATCH 12/13] Delete go.sum --- go.sum | 120 --------------------------------------------------------- 1 file changed, 120 deletions(-) delete mode 100644 go.sum diff --git a/go.sum b/go.sum deleted file mode 100644 index 8ea9e46..0000000 --- a/go.sum +++ /dev/null @@ -1,120 +0,0 @@ -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= -github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= -github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= -github.com/go-redis/redis/v8 v8.11.2 h1:WqlSpAwz8mxDSMCvbyz1Mkiqe0LE5OY4j3lgkvu1Ts0= -github.com/go-redis/redis/v8 v8.11.2/go.mod h1:DLomh7y2e3ggQXQLd1YgmvIfecPJoFl7WU5SOQ/r06M= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= -github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8= -github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rs/cors v1.8.0 h1:P2KMzcFwrPoSjkF1WLRPsp3UMLyql8L4v9hQpVeK5so= -github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE= -go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From dd6a2aa58986a75a7dbfce79212dfd40f2565940 Mon Sep 17 00:00:00 2001 From: Maksim Merkulov Date: Mon, 29 Nov 2021 05:49:21 +0300 Subject: [PATCH 13/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e5f1700..d2bd1ae 100644 --- a/README.md +++ b/README.md @@ -42,4 +42,4 @@ echo -e 'job_successful 100.0\njob_failed 0.0' | curl --data-binary @- http://l ### P.S. What next? We could proceed to add blackbox for the monitoring of the web (like Go application too) -Can add alertmanager and setup Jenkins for starting of jobs for a schedule. It helps to sent pushes to Prometheus pushgateway +Can add alertmanager and setup Jenkins for starting of jobs for a schedule. We could add at this job some variables which send to the pushgateway info about application status, failes and a start/end time of job