Skip to content

Commit

Permalink
Move config files to folder, add prometheus and grafana to docker-com…
Browse files Browse the repository at this point in the history
…pose, add endpoint metric.
  • Loading branch information
masv3971 committed Mar 22, 2024
1 parent 743ee23 commit f4ed9bf
Show file tree
Hide file tree
Showing 9 changed files with 92 additions and 104 deletions.
9 changes: 9 additions & 0 deletions configfiles/datasource.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: 1

datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
isDefault: true
access: proxy
editable: true
File renamed without changes.
13 changes: 13 additions & 0 deletions configfiles/prometheus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
scrape_configs:
- job_name: apigw
scrape_interval: 10s
static_configs:
- targets:
- vc_apigw:8080

- job_name: persistent
scrape_interval: 10s
static_configs:
- targets:
- vc_persistent:8080

69 changes: 0 additions & 69 deletions dev_haproxy.cfg

This file was deleted.

45 changes: 38 additions & 7 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ services:
image: docker.sunet.se/dc4eu/apigw:latest
restart: always
volumes:
- ./dev_config_docker.yaml:/config.yaml:ro
- ./configfiles/dev_config_docker.yaml:/config.yaml:ro
- /var/log/sunet:/var/log/sunet
depends_on:
- redis
Expand All @@ -24,7 +24,7 @@ services:
restart: always
volumes:
- ./cert:/cert:ro
- ./dev_config_docker.yaml:/config.yaml:ro
- ./configfiles/dev_config_docker.yaml:/config.yaml:ro
depends_on:
- redis
- mongo
Expand All @@ -39,7 +39,7 @@ services:
image: docker.sunet.se/dc4eu/registry:latest
restart: always
volumes:
- ./dev_config_docker.yaml:/config.yaml:ro
- ./configfiles/dev_config_docker.yaml:/config.yaml:ro
depends_on:
- redis
- mongo
Expand All @@ -54,7 +54,7 @@ services:
image: docker.sunet.se/dc4eu/cache:latest
restart: always
volumes:
- ./dev_config_docker.yaml:/config.yaml:ro
- ./configfiles/dev_config_docker.yaml:/config.yaml:ro
depends_on:
- redis
networks:
Expand All @@ -68,7 +68,7 @@ services:
image: docker.sunet.se/dc4eu/persistent:latest
restart: always
volumes:
- ./dev_config_docker.yaml:/config.yaml:ro
- ./configfiles/dev_config_docker.yaml:/config.yaml:ro
depends_on:
- redis
- mongo
Expand All @@ -83,7 +83,7 @@ services:
image: docker.sunet.se/dc4eu/py_pdfsigner_dev:latest
restart: always
volumes:
- ./dev_config_docker.yaml:/config.yaml:ro
- ./configfiles/dev_config_docker.yaml:/config.yaml:ro
- /var/log/sunet:/var/log/sunet
depends_on:
- redis
Expand All @@ -98,7 +98,7 @@ services:
image: docker.sunet.se/dc4eu/py_pdfvalidator_dev:latest
restart: always
volumes:
- ./dev_config_docker.yaml:/config.yaml:ro
- ./configfiles/dev_config_docker.yaml:/config.yaml:ro
- /var/log/sunet:/var/log/sunet
# - ./certs/SectigoRSADocumentSigningCA.crt:/app/SectigoRSADocumentSigningCA.crt:ro
# - ./certs/USERTrustRSAAddTrustCA.crt:/app/USERTrustRSAAddTrustCA.crt:ro
Expand Down Expand Up @@ -149,6 +149,36 @@ services:
environment:
- "COLLECTOR_OTLP_ENABLED=true"

prometheus:
image: prom/prometheus
container_name: prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- 9090:9090
networks:
vc-net:
ipv4_address: 172.16.50.12
restart: unless-stopped
volumes:
- ./configfiles/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus_data:/prometheus

grafana:
image: grafana/grafana
container_name: grafana
ports:
- 3000:3000
networks:
vc-net:
ipv4_address: 172.16.50.13
restart: unless-stopped
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=grafana
volumes:
- ./configfiles/grafana:/etc/grafana/provisioning/datasources

networks:
vc-net:
driver: bridge
Expand All @@ -161,3 +191,4 @@ networks:
volumes:
redis_data:
mongo_data:
prometheus_data:
29 changes: 16 additions & 13 deletions internal/apigw/httpserver/metric.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package httpserver

import "github.com/prometheus/client_golang/prometheus"
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
)

// metrics is the metrics object for httpserver
type metrics struct {
Expand All @@ -21,62 +24,62 @@ type metrics struct {
}

func (m *metrics) init() {
m.DocumentAttestationCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.DocumentAttestationCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_document_attestation_total",
Help: "The total number of request to endpoint /api/v1/document/attestation",
})

m.DocumentDelCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.DocumentDelCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_document_del_total",
Help: "The total number of request to endpoint /api/v1/document/del",
})

m.DocumentGetCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.DocumentGetCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_document_get_total",
Help: "The total number of request to endpoint /api/v1/document",
})

m.NotificationCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.NotificationCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_notification_total",
Help: "The total number of request to endpoint /api/v1/notification",
})

m.PortalCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.PortalCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_portal_total",
Help: "The total number of request to endpoint /api/v1/portal",
})

m.UploadCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.UploadCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_upload_total",
Help: "The total number of request to endpoint /api/v1/upload",
})

m.IDMappingCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.IDMappingCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_id_mapping_total",
Help: "The total number of request to endpoint /api/v1/id/mapping",
})

m.SignCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.SignCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_sign_total",
Help: "The total number of request to endpoint /api/v1/eduseal/pdf/sign",
})

m.GetSignCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.GetSignCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_get_sign_total",
Help: "The total number of request to endpoint /api/v1/eduseal/pdf/:transaction_id",
})

m.ValidateCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.ValidateCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_validate_total",
Help: "The total number of request to endpoint /api/v1/eduseal/pdf/validate",
})

m.RevokeCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.RevokeCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_revoke_total",
Help: "The total number of request to endpoint /api/v1/eduseal/pdf/revoke",
})

m.HealthCounter = prometheus.NewCounter(prometheus.CounterOpts{
m.HealthCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "apigw_http_endpoint_health_total",
Help: "The total number of request to endpoint /health",
})
Expand Down
4 changes: 2 additions & 2 deletions internal/apigw/httpserver/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ type Service struct {
gin *gin.Engine
tlsConfig *tls.Config
tp *trace.Tracer
metrics metrics
metrics *metrics
}

// New creates a new httpserver service
Expand All @@ -46,7 +46,7 @@ func New(ctx context.Context, config *model.Cfg, api *apiv1.Client, tp *trace.Tr
server: &http.Server{
ReadHeaderTimeout: 2 * time.Second,
},
metrics: metrics{},
metrics: &metrics{},
}

s.metrics.init()
Expand Down
13 changes: 11 additions & 2 deletions internal/persistent/db/vc_datastore.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"vc/pkg/model"

"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
Expand All @@ -13,8 +15,9 @@ import (

// VCDatastoreColl is the collection of datastore
type VCDatastoreColl struct {
service *Service
coll *mongo.Collection
service *Service
coll *mongo.Collection
metricSave prometheus.Counter
}

func (c *VCDatastoreColl) createIndex(ctx context.Context) error {
Expand Down Expand Up @@ -42,11 +45,17 @@ func (c *VCDatastoreColl) Save(ctx context.Context, doc *model.Upload) error {
ctx, span := c.service.tp.Start(ctx, "db:vc:datastore:save")
defer span.End()

c.metricSave = promauto.NewCounter(prometheus.CounterOpts{
Name: "persistent_vc_db_save_total",
})


res, err := c.coll.InsertOne(ctx, doc)
if err != nil {
span.SetStatus(codes.Error, err.Error())
return err
}
c.metricSave.Inc()
c.service.log.Info("saved document", "document_id", doc.Meta.DocumentID, "inserted_id", res.InsertedID)
return nil
}
Expand Down
14 changes: 3 additions & 11 deletions internal/persistent/simplequeue/queue_vc_save.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@ import (

// VCPersistentSave holds the ladok delete signed queue
type VCPersistentSave struct {
service *Service
log *logger.Log
metricEnqueueCounter prometheus.Counter
metricWorkerCounter prometheus.Counter
service *Service
log *logger.Log
metricWorkerCounter prometheus.Counter
*retask.Queue
}

Expand All @@ -30,11 +29,6 @@ func NewVCPersistentSave(ctx context.Context, service *Service, queueName string

vcPersistentSave.Queue = vcPersistentSave.service.queueClient.NewQueue(ctx, queueName)

vcPersistentSave.metricEnqueueCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "persistent_queue_vc_save_enqueue_total",
//Help: "The total number of added messages to the eduseal_del_signed queue",
})

vcPersistentSave.metricWorkerCounter = promauto.NewCounter(prometheus.CounterOpts{
Name: "persistent_queue_vc_save_worker_total",
})
Expand All @@ -50,8 +44,6 @@ func (s *VCPersistentSave) Enqueue(ctx context.Context, message any) (*retask.Jo
ctx, span := s.service.tp.Start(ctx, "simplequeue:VCPersistentSave:Enqueue")
defer span.End()

s.metricEnqueueCounter.Inc()

data, err := json.Marshal(message)
if err != nil {
span.SetStatus(codes.Error, err.Error())
Expand Down

0 comments on commit f4ed9bf

Please sign in to comment.