mirror of
https://github.com/absmach/magistrala.git
synced 2026-06-23 04:10:28 +00:00
NOISSUE - Add instance ID (#1776)
* update or to sync with clients branch Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Add empty lines Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update inline constant Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * rebase pr to sync with master branch Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update pr to sync with updated master #1849 Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> --------- Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>
This commit is contained in:
committed by
GitHub
parent
604949e073
commit
892015a60f
@@ -1967,4 +1967,3 @@ components:
|
||||
security:
|
||||
- bearerAuth: []
|
||||
- refreshAuth: []
|
||||
|
||||
@@ -51,6 +51,7 @@ const (
|
||||
addExternalKey = "external-key"
|
||||
addName = "name"
|
||||
addContent = "config"
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -201,7 +202,7 @@ func newThingsService(auth upolicies.AuthServiceClient) (clients.Service, groups
|
||||
func newThingsServer(csvc clients.Service, gsvc groups.Service, psvc tpolicies.Service) *httptest.Server {
|
||||
logger := mflog.NewMock()
|
||||
mux := bone.New()
|
||||
capi.MakeHandler(csvc, mux, logger)
|
||||
capi.MakeHandler(csvc, mux, logger, instanceID)
|
||||
gapi.MakeHandler(gsvc, mux, logger)
|
||||
papi.MakeHandler(csvc, psvc, mux, logger)
|
||||
return httptest.NewServer(mux)
|
||||
@@ -209,7 +210,7 @@ func newThingsServer(csvc clients.Service, gsvc groups.Service, psvc tpolicies.S
|
||||
|
||||
func newBootstrapServer(svc bootstrap.Service) *httptest.Server {
|
||||
logger := mflog.NewMock()
|
||||
mux := bsapi.MakeHandler(svc, bootstrap.NewConfigReader(encKey), logger)
|
||||
mux := bsapi.MakeHandler(svc, bootstrap.NewConfigReader(encKey), logger, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ var (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc bootstrap.Service, reader bootstrap.ConfigReader, logger mflog.Logger) http.Handler {
|
||||
func MakeHandler(svc bootstrap.Service, reader bootstrap.ConfigReader, logger mflog.Logger, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, encodeError)),
|
||||
}
|
||||
@@ -100,7 +100,7 @@ func MakeHandler(svc bootstrap.Service, reader bootstrap.ConfigReader, logger mf
|
||||
encodeResponse,
|
||||
opts...))
|
||||
|
||||
r.GetFunc("/health", mainflux.Health("bootstrap"))
|
||||
r.GetFunc("/health", mainflux.Health("bootstrap", instanceID))
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return r
|
||||
|
||||
@@ -51,6 +51,7 @@ const (
|
||||
thingStateChange = thingPrefix + "state_change"
|
||||
thingBootstrap = thingPrefix + "bootstrap"
|
||||
thingUpdateConnections = thingPrefix + "update_connections"
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -101,7 +102,7 @@ func newThingsService(auth upolicies.AuthServiceClient) (clients.Service, groups
|
||||
func newThingsServer(csvc clients.Service, gsvc groups.Service, psvc tpolicies.Service) *httptest.Server {
|
||||
logger := logger.NewMock()
|
||||
mux := bone.New()
|
||||
capi.MakeHandler(csvc, mux, logger)
|
||||
capi.MakeHandler(csvc, mux, logger, instanceID)
|
||||
gapi.MakeHandler(gsvc, mux, logger)
|
||||
papi.MakeHandler(csvc, psvc, mux, logger)
|
||||
return httptest.NewServer(mux)
|
||||
|
||||
@@ -42,6 +42,7 @@ const (
|
||||
email = "test@example.com"
|
||||
unknown = "unknown"
|
||||
channelsNum = 3
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -92,7 +93,7 @@ func newThingsService(auth upolicies.AuthServiceClient) (clients.Service, groups
|
||||
func newThingsServer(csvc clients.Service, gsvc groups.Service, psvc tpolicies.Service) *httptest.Server {
|
||||
logger := mflog.NewMock()
|
||||
mux := bone.New()
|
||||
capi.MakeHandler(csvc, mux, logger)
|
||||
capi.MakeHandler(csvc, mux, logger, instanceID)
|
||||
gapi.MakeHandler(gsvc, mux, logger)
|
||||
papi.MakeHandler(csvc, psvc, mux, logger)
|
||||
return httptest.NewServer(mux)
|
||||
|
||||
@@ -27,7 +27,7 @@ const (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc certs.Service, logger logger.Logger) http.Handler {
|
||||
func MakeHandler(svc certs.Service, logger logger.Logger, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, encodeError)),
|
||||
}
|
||||
@@ -63,7 +63,7 @@ func MakeHandler(svc certs.Service, logger logger.Logger) http.Handler {
|
||||
))
|
||||
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
r.GetFunc("/health", mainflux.Health("certs"))
|
||||
r.GetFunc("/health", mainflux.Health("certs", instanceID))
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ const (
|
||||
caPath = "../docker/ssl/certs/ca.crt"
|
||||
caKeyPath = "../docker/ssl/certs/ca.key"
|
||||
cfgSignHoursValid = "24h"
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
func newService(tokens map[string]string) (certs.Service, error) {
|
||||
@@ -367,6 +368,6 @@ func TestViewCert(t *testing.T) {
|
||||
func newThingsServer(svc clients.Service) *httptest.Server {
|
||||
logger := logger.NewMock()
|
||||
mux := bone.New()
|
||||
httpapi.MakeHandler(svc, mux, logger)
|
||||
httpapi.MakeHandler(svc, mux, logger, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
+12
-2
@@ -29,6 +29,7 @@ import (
|
||||
httpserver "github.com/mainflux/mainflux/internal/server/http"
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
mfsdk "github.com/mainflux/mainflux/pkg/sdk/go"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/users/policies"
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
@@ -54,6 +55,7 @@ type config struct {
|
||||
ThingsURL string `env:"MF_THINGS_URL" envDefault:"http://localhost:9000"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_BOOTSTRAP_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -70,6 +72,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Create new postgres client
|
||||
dbConfig := pgClient.Config{Name: defDB}
|
||||
|
||||
@@ -94,7 +104,7 @@ func main() {
|
||||
defer authHandler.Close()
|
||||
logger.Info("Successfully connected to auth grpc server " + authHandler.Secure())
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -113,7 +123,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, bootstrap.NewConfigReader([]byte(cfg.EncKey)), logger), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, bootstrap.NewConfigReader([]byte(cfg.EncKey)), logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"github.com/mainflux/mainflux/internal/server"
|
||||
httpserver "github.com/mainflux/mainflux/internal/server/http"
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/readers"
|
||||
"github.com/mainflux/mainflux/readers/api"
|
||||
"github.com/mainflux/mainflux/readers/cassandra"
|
||||
@@ -37,6 +38,7 @@ const (
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_CASSANDRA_READER_LOG_LEVEL" envDefault:"info"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_CASSANDRA_READER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -55,6 +57,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Create new thing grpc client
|
||||
tc, tcHandler, err := thingsClient.Setup(envPrefix)
|
||||
if err != nil {
|
||||
@@ -88,7 +98,7 @@ func main() {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -26,6 +26,7 @@ import (
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
@@ -42,6 +43,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_CASSANDRA_WRITER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -59,6 +61,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Create new to cassandra client
|
||||
csdSession, err := cassandraClient.SetupDB(envPrefix, cassandra.Table)
|
||||
if err != nil {
|
||||
@@ -66,7 +76,7 @@ func main() {
|
||||
}
|
||||
defer csdSession.Close()
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -100,7 +110,7 @@ func main() {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+11
-1
@@ -29,6 +29,7 @@ import (
|
||||
authClient "github.com/mainflux/mainflux/internal/clients/grpc/auth"
|
||||
pgClient "github.com/mainflux/mainflux/internal/clients/postgres"
|
||||
mfsdk "github.com/mainflux/mainflux/pkg/sdk/go"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -44,6 +45,7 @@ type config struct {
|
||||
CertsURL string `env:"MF_SDK_CERTS_URL" envDefault:"http://localhost"`
|
||||
ThingsURL string `env:"MF_THINGS_URL" envDefault:"http://things:9000"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_CERTS_INSTANCE_ID" envDefault:""`
|
||||
|
||||
// Sign and issue certificates without 3rd party PKI
|
||||
SignCAPath string `env:"MF_CERTS_SIGN_CA_PATH" envDefault:"ca.crt"`
|
||||
@@ -73,6 +75,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.PkiHost == "" {
|
||||
logger.Fatal("No host specified for PKI engine")
|
||||
}
|
||||
@@ -102,7 +112,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+12
-2
@@ -25,6 +25,7 @@ import (
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
pstracing "github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
@@ -42,6 +43,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_COAP_ADAPTER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -58,6 +60,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
tc, tcHandler, err := thingsClient.Setup(envPrefix)
|
||||
if err != nil {
|
||||
logger.Fatal(err.Error())
|
||||
@@ -65,7 +75,7 @@ func main() {
|
||||
defer tcHandler.Close()
|
||||
logger.Info("Successfully connected to things grpc server " + tcHandler.Secure())
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -96,7 +106,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(instanceID), logger)
|
||||
|
||||
coapServerConfig := server.Config{Port: defSvcCoapPort}
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixCoap, AltPrefix: envPrefix}); err != nil {
|
||||
|
||||
+12
-2
@@ -25,6 +25,7 @@ import (
|
||||
"github.com/mainflux/mainflux/pkg/messaging"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
pstracing "github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/things/policies"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
|
||||
@@ -43,6 +44,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_HTTP_ADAPTER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -59,6 +61,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
tc, tcHandler, err := thingsClient.Setup(envPrefix)
|
||||
if err != nil {
|
||||
logger.Fatal(err.Error())
|
||||
@@ -66,7 +76,7 @@ func main() {
|
||||
defer tcHandler.Close()
|
||||
logger.Info("Successfully connected to things grpc server " + tcHandler.Secure())
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -90,7 +100,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -22,6 +22,7 @@ import (
|
||||
"github.com/mainflux/mainflux/internal/server"
|
||||
httpserver "github.com/mainflux/mainflux/internal/server/http"
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/readers"
|
||||
"github.com/mainflux/mainflux/readers/api"
|
||||
"github.com/mainflux/mainflux/readers/influxdb"
|
||||
@@ -39,6 +40,7 @@ const (
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_INFLUX_READER_LOG_LEVEL" envDefault:"info"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_INFLUX_READER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -55,6 +57,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
tc, tcHandler, err := thingsClient.Setup(envPrefix)
|
||||
if err != nil {
|
||||
logger.Fatal(err.Error())
|
||||
@@ -92,7 +102,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -23,6 +23,7 @@ import (
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
@@ -40,6 +41,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_INFLUX_WRITER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -56,7 +58,15 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -110,7 +120,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+12
-2
@@ -26,6 +26,7 @@ import (
|
||||
"github.com/mainflux/mainflux/pkg/messaging"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
jaegerClient "github.com/mainflux/mainflux/internal/clients/jaeger"
|
||||
@@ -57,6 +58,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_LORA_ADAPTER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -73,13 +75,21 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
rmConn, err := redisClient.Setup(envPrefixRouteMap)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to setup route map redis client : %s", err))
|
||||
}
|
||||
defer rmConn.Close()
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -114,7 +124,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -20,6 +20,7 @@ import (
|
||||
"github.com/mainflux/mainflux/internal/server"
|
||||
httpserver "github.com/mainflux/mainflux/internal/server/http"
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/readers"
|
||||
"github.com/mainflux/mainflux/readers/api"
|
||||
"github.com/mainflux/mainflux/readers/mongodb"
|
||||
@@ -38,6 +39,7 @@ const (
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_MONGO_READER_LOG_LEVEL" envDefault:"info"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_MONGO_READER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -54,6 +56,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
db, err := mongoClient.Setup(envPrefixDB)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to setup mongo database : %s", err))
|
||||
@@ -79,7 +89,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -24,6 +24,7 @@ import (
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
@@ -42,6 +43,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_MONGO_WRITER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -58,7 +60,15 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -91,7 +101,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+11
-1
@@ -29,6 +29,7 @@ import (
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
mqttpub "github.com/mainflux/mainflux/pkg/messaging/mqtt"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
mp "github.com/mainflux/mproxy/pkg/mqtt"
|
||||
"github.com/mainflux/mproxy/pkg/session"
|
||||
ws "github.com/mainflux/mproxy/pkg/websocket"
|
||||
@@ -57,6 +58,7 @@ type config struct {
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_MQTT_ADAPTER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -73,6 +75,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.MqttTargetHealthCheck != "" {
|
||||
notify := func(e error, next time.Duration) {
|
||||
logger.Info(fmt.Sprintf("Broker not ready: %s, next try in %s", e.Error(), next))
|
||||
@@ -84,7 +94,7 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
|
||||
+12
-2
@@ -27,6 +27,7 @@ import (
|
||||
"github.com/mainflux/mainflux/opcua/redis"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
@@ -49,6 +50,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_OPCUA_ADAPTER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -70,6 +72,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
rmConn, err := redisClient.Setup(envPrefixRouteMap)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to setup %s bootstrap event store redis client : %s", svcName, err))
|
||||
@@ -86,7 +96,7 @@ func main() {
|
||||
}
|
||||
defer esConn.Close()
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -116,7 +126,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, httpCancel, svcName, httpServerConfig, api.MakeHandler(svc, logger), logger)
|
||||
hs := httpserver.New(ctx, httpCancel, svcName, httpServerConfig, api.MakeHandler(svc, logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, httpCancel)
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"github.com/mainflux/mainflux/internal/server"
|
||||
httpserver "github.com/mainflux/mainflux/internal/server/http"
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/readers"
|
||||
"github.com/mainflux/mainflux/readers/api"
|
||||
"github.com/mainflux/mainflux/readers/postgres"
|
||||
@@ -38,6 +39,7 @@ const (
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_POSTGRES_READER_LOG_LEVEL" envDefault:"info"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_POSTGRES_READER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -58,6 +60,15 @@ func main() {
|
||||
if err != nil {
|
||||
logger.Fatal(err.Error())
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
defer tcHandler.Close()
|
||||
logger.Info("Successfully connected to things grpc server " + tcHandler.Secure())
|
||||
|
||||
@@ -84,7 +95,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -25,6 +25,7 @@ import (
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
@@ -42,6 +43,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_POSTGRES_WRITER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -58,7 +60,15 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -93,7 +103,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+12
-1
@@ -22,6 +22,7 @@ import (
|
||||
"github.com/mainflux/mainflux/pkg/errors"
|
||||
mfgroups "github.com/mainflux/mainflux/pkg/groups"
|
||||
mfSDK "github.com/mainflux/mainflux/pkg/sdk/go"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/provision"
|
||||
"github.com/mainflux/mainflux/provision/api"
|
||||
"golang.org/x/sync/errgroup"
|
||||
@@ -50,6 +51,7 @@ const (
|
||||
defBSContent = ""
|
||||
defCertsHoursValid = "2400h"
|
||||
defSendTelemetry = "true"
|
||||
defInstanceID = ""
|
||||
|
||||
envConfigFile = "MF_PROVISION_CONFIG_FILE"
|
||||
envLogLevel = "MF_PROVISION_LOG_LEVEL"
|
||||
@@ -71,6 +73,7 @@ const (
|
||||
envBSContent = "MF_PROVISION_BS_CONTENT"
|
||||
envCertsHoursValid = "MF_PROVISION_CERTS_HOURS_VALID"
|
||||
envSendTelemetry = "MF_SEND_TELEMETRY"
|
||||
envInstanceID = "MF_PROVISION_INSTANCE_ID"
|
||||
|
||||
contentType = "application/json"
|
||||
)
|
||||
@@ -99,6 +102,14 @@ func main() {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
|
||||
instanceID := mainflux.Env(envInstanceID, defInstanceID)
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
if cfgFromFile, err := loadConfigFromFile(cfg.File); err != nil {
|
||||
logger.Warn(fmt.Sprintf("Continue with settings from env, failed to load from: %s: %s", cfg.File, err))
|
||||
} else {
|
||||
@@ -122,7 +133,7 @@ func main() {
|
||||
svc = api.NewLoggingMiddleware(svc, logger)
|
||||
|
||||
httpServerConfig := server.Config{Host: "", Port: cfg.Server.HTTPPort, KeyFile: cfg.Server.ServerKey, CertFile: cfg.Server.ServerCert}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -34,6 +34,7 @@ import (
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
pstracing "github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/ulid"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -45,12 +46,13 @@ const (
|
||||
)
|
||||
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_SMPP_NOTIFIER_LOG_LEVEL" envDefault:"info"`
|
||||
From string `env:"MF_SMPP_NOTIFIER_FROM_ADDR" envDefault:""`
|
||||
ConfigPath string `env:"MF_SMPP_NOTIFIER_CONFIG_PATH" envDefault:"/config.toml"`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
LogLevel string `env:"MF_SMPP_NOTIFIER_LOG_LEVEL" envDefault:"info"`
|
||||
From string `env:"MF_SMPP_NOTIFIER_FROM_ADDR" envDefault:""`
|
||||
ConfigPath string `env:"MF_SMPP_NOTIFIER_CONFIG_PATH" envDefault:"/config.toml"`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_SMPP_NOTIFIER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -67,6 +69,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
dbConfig := pgClient.Config{Name: defDB}
|
||||
db, err := pgClient.SetupWithConfig(envPrefix, *notifierPg.Migration(), dbConfig)
|
||||
if err != nil {
|
||||
@@ -79,7 +89,7 @@ func main() {
|
||||
logger.Fatal(fmt.Sprintf("failed to load SMPP configuration from environment : %s", err))
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -113,7 +123,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -32,6 +32,7 @@ import (
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
pstracing "github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/ulid"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/users/policies"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"golang.org/x/sync/errgroup"
|
||||
@@ -46,12 +47,13 @@ const (
|
||||
)
|
||||
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_SMTP_NOTIFIER_LOG_LEVEL" envDefault:"info"`
|
||||
ConfigPath string `env:"MF_SMTP_NOTIFIER_CONFIG_PATH" envDefault:"/config.toml"`
|
||||
From string `env:"MF_SMTP_NOTIFIER_FROM_ADDR" envDefault:""`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
LogLevel string `env:"MF_SMTP_NOTIFIER_LOG_LEVEL" envDefault:"info"`
|
||||
ConfigPath string `env:"MF_SMTP_NOTIFIER_CONFIG_PATH" envDefault:"/config.toml"`
|
||||
From string `env:"MF_SMTP_NOTIFIER_FROM_ADDR" envDefault:""`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_SMTP_NOTIFIER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -68,6 +70,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
dbConfig := pgClient.Config{Name: defDB}
|
||||
db, err := pgClient.SetupWithConfig(envPrefix, *notifierPg.Migration(), dbConfig)
|
||||
if err != nil {
|
||||
@@ -80,7 +90,7 @@ func main() {
|
||||
logger.Fatal(fmt.Sprintf("failed to load email configuration : %s", err))
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -115,7 +125,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+12
-2
@@ -73,6 +73,7 @@ type config struct {
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
CacheKeyDuration string `env:"MF_THINGS_CACHE_KEY_DURATION" envDefault:"10m"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_THINGS_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -89,6 +90,15 @@ func main() {
|
||||
if err != nil {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Create new database for things
|
||||
dbConfig := pgClient.Config{Name: defDB}
|
||||
db, err := pgClient.SetupWithConfig(envPrefix, *thingsPg.Migration(), dbConfig)
|
||||
@@ -97,7 +107,7 @@ func main() {
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -145,7 +155,7 @@ func main() {
|
||||
}
|
||||
mux := bone.New()
|
||||
hsp := httpserver.New(ctx, cancel, "things-policies", httpServerConfig, httpapi.MakeHandler(csvc, psvc, mux, logger), logger)
|
||||
hsc := httpserver.New(ctx, cancel, "things-clients", httpServerConfig, capi.MakeHandler(csvc, mux, logger), logger)
|
||||
hsc := httpserver.New(ctx, cancel, "things-clients", httpServerConfig, capi.MakeHandler(csvc, mux, logger, instanceID), logger)
|
||||
hsg := httpserver.New(ctx, cancel, "things-groups", httpServerConfig, gapi.MakeHandler(gsvc, mux, logger), logger)
|
||||
|
||||
registerThingsServiceServer := func(srv *grpc.Server) {
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"github.com/mainflux/mainflux/internal/server"
|
||||
httpserver "github.com/mainflux/mainflux/internal/server/http"
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/readers"
|
||||
"github.com/mainflux/mainflux/readers/api"
|
||||
"github.com/mainflux/mainflux/readers/timescale"
|
||||
@@ -36,8 +37,9 @@ const (
|
||||
)
|
||||
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_TIMESCALE_READER_LOG_LEVEL" envDefault:"info"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
LogLevel string `env:"MF_TIMESCALE_READER_LOG_LEVEL" envDefault:"info"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_TIMESCALE_READER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -54,6 +56,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
dbConfig := pgClient.Config{Name: defDB}
|
||||
if err := dbConfig.LoadEnv(envPrefix); err != nil {
|
||||
logger.Fatal(err.Error())
|
||||
@@ -84,7 +94,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(repo, tc, auth, svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -26,6 +26,7 @@ import (
|
||||
mflog "github.com/mainflux/mainflux/logger"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
@@ -38,11 +39,12 @@ const (
|
||||
)
|
||||
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_TIMESCALE_WRITER_LOG_LEVEL" envDefault:"info"`
|
||||
ConfigPath string `env:"MF_TIMESCALE_WRITER_CONFIG_PATH" envDefault:"/config.toml"`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
LogLevel string `env:"MF_TIMESCALE_WRITER_LOG_LEVEL" envDefault:"info"`
|
||||
ConfigPath string `env:"MF_TIMESCALE_WRITER_CONFIG_PATH" envDefault:"/config.toml"`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"localhost:6831"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_TIMESCALE_WRITER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -59,6 +61,14 @@ func main() {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
dbConfig := pgClient.Config{Name: defDB}
|
||||
db, err := pgClient.SetupWithConfig(envPrefix, *timescale.Migration(), dbConfig)
|
||||
if err != nil {
|
||||
@@ -66,7 +76,7 @@ func main() {
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Error(fmt.Sprintf("Failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -94,7 +104,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svcName, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+11
-2
@@ -56,6 +56,7 @@ type config struct {
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_TWINS_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -72,6 +73,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
cacheClient, err := redisClient.Setup(envPrefixCache)
|
||||
if err != nil {
|
||||
logger.Fatal(err.Error())
|
||||
@@ -83,7 +92,7 @@ func main() {
|
||||
logger.Fatal(fmt.Sprintf("failed to setup postgres database : %s", err))
|
||||
}
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -121,7 +130,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, twapi.MakeHandler(svc, logger), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, twapi.MakeHandler(svc, logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
+11
-2
@@ -74,6 +74,7 @@ type config struct {
|
||||
ResetURL string `env:"MF_TOKEN_RESET_ENDPOINT" envDefault:"/reset-request"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_USERS_INSTANCE_ID" envDefault:""`
|
||||
PassRegex *regexp.Regexp
|
||||
}
|
||||
|
||||
@@ -96,6 +97,14 @@ func main() {
|
||||
logger.Fatal(fmt.Sprintf("failed to init logger: %s", err.Error()))
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
ec := email.Config{}
|
||||
if err := env.Parse(&ec); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load email configuration : %s", err.Error()))
|
||||
@@ -108,7 +117,7 @@ func main() {
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -126,7 +135,7 @@ func main() {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err.Error()))
|
||||
}
|
||||
mux := bone.New()
|
||||
hsc := httpserver.New(ctx, cancel, svcName, httpServerConfig, capi.MakeHandler(csvc, mux, logger), logger)
|
||||
hsc := httpserver.New(ctx, cancel, svcName, httpServerConfig, capi.MakeHandler(csvc, mux, logger, instanceID), logger)
|
||||
hsg := httpserver.New(ctx, cancel, svcName, httpServerConfig, gapi.MakeHandler(gsvc, mux, logger), logger)
|
||||
hsp := httpserver.New(ctx, cancel, svcName, httpServerConfig, httpapi.MakeHandler(psvc, mux, logger), logger)
|
||||
|
||||
|
||||
+16
-6
@@ -25,6 +25,7 @@ import (
|
||||
"github.com/mainflux/mainflux/pkg/messaging"
|
||||
"github.com/mainflux/mainflux/pkg/messaging/brokers"
|
||||
pstracing "github.com/mainflux/mainflux/pkg/messaging/tracing"
|
||||
"github.com/mainflux/mainflux/pkg/uuid"
|
||||
"github.com/mainflux/mainflux/things/policies"
|
||||
adapter "github.com/mainflux/mainflux/ws"
|
||||
"github.com/mainflux/mainflux/ws/api"
|
||||
@@ -39,10 +40,11 @@ const (
|
||||
)
|
||||
|
||||
type config struct {
|
||||
LogLevel string `env:"MF_WS_ADAPTER_LOG_LEVEL" envDefault:"info"`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
LogLevel string `env:"MF_WS_ADAPTER_LOG_LEVEL" envDefault:"info"`
|
||||
BrokerURL string `env:"MF_BROKER_URL" envDefault:"nats://localhost:4222"`
|
||||
JaegerURL string `env:"MF_JAEGER_URL" envDefault:"http://jaeger:14268/api/traces"`
|
||||
SendTelemetry bool `env:"MF_SEND_TELEMETRY" envDefault:"true"`
|
||||
InstanceID string `env:"MF_WS_ADAPTER_INSTANCE_ID" envDefault:""`
|
||||
}
|
||||
|
||||
func main() {
|
||||
@@ -59,6 +61,14 @@ func main() {
|
||||
log.Fatalf("failed to init logger: %s", err)
|
||||
}
|
||||
|
||||
instanceID := cfg.InstanceID
|
||||
if instanceID == "" {
|
||||
instanceID, err = uuid.New().ID()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate instanceID: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
tc, tcHandler, err := thingsClient.Setup(envPrefix)
|
||||
if err != nil {
|
||||
logger.Fatal(err.Error())
|
||||
@@ -66,7 +76,7 @@ func main() {
|
||||
defer internal.Close(logger, tcHandler)
|
||||
logger.Info("Successfully connected to things grpc server " + tcHandler.Secure())
|
||||
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL)
|
||||
tp, err := jaegerClient.NewProvider(svcName, cfg.JaegerURL, instanceID)
|
||||
if err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to init Jaeger: %s", err))
|
||||
}
|
||||
@@ -90,7 +100,7 @@ func main() {
|
||||
if err := env.Parse(&httpServerConfig, env.Options{Prefix: envPrefixHttp, AltPrefix: envPrefix}); err != nil {
|
||||
logger.Fatal(fmt.Sprintf("failed to load %s HTTP server configuration : %s", svcName, err))
|
||||
}
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger), logger)
|
||||
hs := httpserver.New(ctx, cancel, svcName, httpServerConfig, api.MakeHandler(svc, logger, instanceID), logger)
|
||||
|
||||
if cfg.SendTelemetry {
|
||||
chc := chclient.New(svcName, mainflux.Version, logger, cancel)
|
||||
|
||||
@@ -50,9 +50,9 @@ var (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler() http.Handler {
|
||||
func MakeHandler(instanceID string) http.Handler {
|
||||
b := bone.New()
|
||||
b.GetFunc("/health", mainflux.Health(protocol))
|
||||
b.GetFunc("/health", mainflux.Health(protocol, instanceID))
|
||||
b.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return b
|
||||
|
||||
@@ -31,6 +31,7 @@ const (
|
||||
token = "token"
|
||||
wrongValue = "wrong_value"
|
||||
topic = "topic"
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -74,7 +75,7 @@ func newService(tokens map[string]string) notifiers.Service {
|
||||
|
||||
func newServer(svc notifiers.Service) *httptest.Server {
|
||||
logger := logger.NewMock()
|
||||
mux := httpapi.MakeHandler(svc, logger)
|
||||
mux := httpapi.MakeHandler(svc, logger, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ const (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc notifiers.Service, logger logger.Logger) http.Handler {
|
||||
func MakeHandler(svc notifiers.Service, logger logger.Logger, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, encodeError)),
|
||||
}
|
||||
@@ -66,7 +66,7 @@ func MakeHandler(svc notifiers.Service, logger logger.Logger) http.Handler {
|
||||
opts...,
|
||||
))
|
||||
|
||||
mux.GetFunc("/health", mainflux.Health("notifier"))
|
||||
mux.GetFunc("/health", mainflux.Health("notifier", instanceID))
|
||||
mux.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return mux
|
||||
|
||||
@@ -12,9 +12,9 @@ import (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP API handler with health check and metrics.
|
||||
func MakeHandler(svcName string) http.Handler {
|
||||
func MakeHandler(svcName, instanceID string) http.Handler {
|
||||
r := bone.New()
|
||||
r.GetFunc("/health", mainflux.Health(svcName))
|
||||
r.GetFunc("/health", mainflux.Health(svcName, instanceID))
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return r
|
||||
|
||||
+25
-1
@@ -58,7 +58,8 @@ MF_USERS_REFRESH_TOKEN_DURATION=24h
|
||||
MF_USERS_ADMIN_EMAIL=admin@example.com
|
||||
MF_USERS_ADMIN_PASSWORD=12345678
|
||||
MF_USERS_RESET_PWD_TEMPLATE=users.tmpl
|
||||
MF_USERS_PASS_REGEX=^.{8,}$
|
||||
MF_USERS_PASS_REGEX=^.{8,}$$
|
||||
MF_USERS_INSTANCE_ID=
|
||||
|
||||
### Email utility
|
||||
MF_EMAIL_HOST=smtp.mailtrap.io
|
||||
@@ -68,6 +69,7 @@ MF_EMAIL_PASSWORD=2b0d302e775b1e
|
||||
MF_EMAIL_FROM_ADDRESS=from@example.com
|
||||
MF_EMAIL_FROM_NAME=Example
|
||||
MF_EMAIL_TEMPLATE=smtp-notifier.tmpl
|
||||
MF_EMAIL_INSTANCE_ID=
|
||||
|
||||
### Token utility
|
||||
MF_TOKEN_RESET_ENDPOINT=/reset-request
|
||||
@@ -94,9 +96,11 @@ MF_THINGS_CACHE_DB=
|
||||
MF_THINGS_ES_URL=es-redis:${MF_REDIS_TCP_PORT}
|
||||
MF_THINGS_ES_PASS=
|
||||
MF_THINGS_ES_DB=
|
||||
MF_THINGS_INSTANCE_ID=
|
||||
|
||||
### HTTP
|
||||
MF_HTTP_ADAPTER_PORT=8008
|
||||
MF_HTTP_ADAPTER_INSTANCE_ID=
|
||||
|
||||
### MQTT
|
||||
MF_MQTT_ADAPTER_LOG_LEVEL=debug
|
||||
@@ -106,6 +110,7 @@ MF_MQTT_ADAPTER_WS_PORT=8080
|
||||
MF_MQTT_BROKER_WS_PORT=8080
|
||||
MF_MQTT_ADAPTER_ES_DB=0
|
||||
MF_MQTT_ADAPTER_ES_PASS=
|
||||
MF_MQTT_ADAPTER_INSTANCE_ID=
|
||||
|
||||
### VERNEMQ
|
||||
MF_DOCKER_VERNEMQ_ALLOW_ANONYMOUS=on
|
||||
@@ -114,10 +119,12 @@ MF_DOCKER_VERNEMQ_LOG__CONSOLE__LEVEL=error
|
||||
### CoAP
|
||||
MF_COAP_ADAPTER_LOG_LEVEL=debug
|
||||
MF_COAP_ADAPTER_PORT=5683
|
||||
MF_COAP_ADAPTER_INSTANCE_ID=
|
||||
|
||||
### WS
|
||||
MF_WS_ADAPTER_LOG_LEVEL=debug
|
||||
MF_WS_ADAPTER_PORT=8186
|
||||
MF_WS_ADAPTER_INSTANCE_ID=
|
||||
|
||||
### Call home
|
||||
MF_SEND_TELEMETRY=true
|
||||
@@ -131,6 +138,7 @@ MF_BOOTSTRAP_DB_USER=mainflux
|
||||
MF_BOOTSTRAP_DB_PASS=mainflux
|
||||
MF_BOOTSTRAP_DB=bootstrap
|
||||
MF_BOOTSTRAP_DB_SSL_MODE=disable
|
||||
MF_BOOTSTRAP_INSTANCE_ID=
|
||||
|
||||
### Provision
|
||||
MF_PROVISION_CONFIG_FILE=/configs/config.toml
|
||||
@@ -153,6 +161,7 @@ MF_PROVISION_BS_AUTO_WHITELIST=true
|
||||
MF_PROVISION_BS_CONTENT=
|
||||
MF_PROVISION_CERTS_HOURS_VALID=2400h
|
||||
MF_PROVISION_CERTS_RSA_BITS=2048
|
||||
MF_PROVISION_INSTANCE_ID=
|
||||
|
||||
# Certs
|
||||
MF_CERTS_LOG_LEVEL=debug
|
||||
@@ -176,6 +185,7 @@ MF_CERTS_SIGN_CA_KEY_PATH=/etc/ssl/certs/ca.key
|
||||
MF_CERTS_SIGN_HOURS_VALID=2048h
|
||||
MF_CERTS_SIGN_RSA_BITS=2048
|
||||
MF_CERTS_VAULT_HOST=http://vault:8200
|
||||
MF_CERTS_INSTANCE_ID=
|
||||
|
||||
|
||||
### Vault
|
||||
@@ -206,6 +216,7 @@ MF_LORA_ADAPTER_HTTP_PORT=9017
|
||||
MF_LORA_ADAPTER_ROUTE_MAP_URL=localhost:6379
|
||||
MF_LORA_ADAPTER_ROUTE_MAP_PASS=
|
||||
MF_LORA_ADAPTER_ROUTE_MAP_DB=0
|
||||
MF_LORA_ADAPTER_INSTANCE_ID=
|
||||
|
||||
### OPC-UA
|
||||
MF_OPCUA_ADAPTER_HTTP_PORT=8188
|
||||
@@ -218,6 +229,7 @@ MF_OPCUA_ADAPTER_ROUTE_MAP_URL=localhost:6379
|
||||
MF_OPCUA_ADAPTER_ROUTE_MAP_PASS=
|
||||
MF_OPCUA_ADAPTER_ROUTE_MAP_DB=0
|
||||
MF_OPCUA_ADAPTER_EVENT_CONSUMER=opcua
|
||||
MF_OPCUA_ADAPTER_INSTANCE_ID=
|
||||
|
||||
### Cassandra Writer
|
||||
MF_CASSANDRA_WRITER_LOG_LEVEL=debug
|
||||
@@ -234,6 +246,7 @@ MF_CASSANDRA_READER_DB_CLUSTER=mainflux-cassandra
|
||||
MF_CASSANDRA_READER_DB_KEYSPACE=mainflux
|
||||
MF_CASSANDRA_READER_SERVER_CERT=
|
||||
MF_CASSANDRA_READER_SERVER_KEY=
|
||||
MF_CASSANDRA_WRITER_INSANCE_ID=
|
||||
|
||||
### InfluxDB
|
||||
MF_INFLUXDB_PORT=8086
|
||||
@@ -254,6 +267,7 @@ MF_INFLUX_WRITER_LOG_LEVEL=debug
|
||||
MF_INFLUX_WRITER_PORT=9006
|
||||
MF_INFLUX_WRITER_BATCH_SIZE=5000
|
||||
MF_INFLUX_WRITER_BATCH_TIMEOUT=5
|
||||
MF_INFLUX_WRITER_INSTANCE_ID=
|
||||
|
||||
### InfluxDB Reader
|
||||
MF_INFLUX_READER_LOG_LEVEL=debug
|
||||
@@ -261,12 +275,14 @@ MF_INFLUX_READER_PORT=9005
|
||||
MF_INFLUX_READER_SERVER_KEY=
|
||||
MF_INFLUX_READER_SERVER_CERT=
|
||||
MF_INFLUXDB_DB=mainflux
|
||||
MF_INFLUX_READER_INSTANCE_ID=
|
||||
|
||||
### MongoDB Writer
|
||||
MF_MONGO_WRITER_LOG_LEVEL=debug
|
||||
MF_MONGO_WRITER_PORT=9008
|
||||
MF_MONGO_WRITER_DB=mainflux
|
||||
MF_MONGO_WRITER_DB_PORT=27017
|
||||
MF_MONGO_WRITER_INSTANCE_ID=
|
||||
|
||||
### MongoDB Reader
|
||||
MF_MONGO_READER_LOG_LEVEL=debug
|
||||
@@ -275,6 +291,7 @@ MF_MONGO_READER_DB=mainflux
|
||||
MF_MONGO_READER_DB_PORT=27017
|
||||
MF_MONGO_READER_SERVER_CERT=
|
||||
MF_MONGO_READER_SERVER_KEY=
|
||||
MF_MONGO_READER_INSTANCE_ID=
|
||||
|
||||
### Postgres Writer
|
||||
MF_POSTGRES_WRITER_LOG_LEVEL=debug
|
||||
@@ -287,6 +304,7 @@ MF_POSTGRES_WRITER_DB_SSL_MODE=disable
|
||||
MF_POSTGRES_WRITER_DB_SSL_CERT=""
|
||||
MF_POSTGRES_WRITER_DB_SSL_KEY=""
|
||||
MF_POSTGRES_WRITER_DB_SSL_ROOT_CERT=""
|
||||
MF_POSTGRES_WRITER_INSTANCE_ID=
|
||||
|
||||
### Postgres Reader
|
||||
MF_POSTGRES_READER_LOG_LEVEL=debug
|
||||
@@ -301,6 +319,7 @@ MF_POSTGRES_READER_DB_SSL_MODE=disable
|
||||
MF_POSTGRES_READER_DB_SSL_CERT=""
|
||||
MF_POSTGRES_READER_DB_SSL_KEY=""
|
||||
MF_POSTGRES_READER_DB_SSL_ROOT_CERT=""
|
||||
MF_POSTGRES_READER_INSTANCE_ID=
|
||||
|
||||
### Timescale Writer
|
||||
MF_TIMESCALE_WRITER_LOG_LEVEL=debug
|
||||
@@ -313,6 +332,7 @@ MF_TIMESCALE_WRITER_DB_SSL_MODE=disable
|
||||
MF_TIMESCALE_WRITER_DB_SSL_CERT=""
|
||||
MF_TIMESCALE_WRITER_DB_SSL_KEY=""
|
||||
MF_TIMESCALE_WRITER_DB_SSL_ROOT_CERT=""
|
||||
MF_TIMESCALE_WRITER_INSTANCE_ID=
|
||||
|
||||
### Timescale Reader
|
||||
MF_TIMESCALE_READER_LOG_LEVEL=debug
|
||||
@@ -327,6 +347,7 @@ MF_TIMESCALE_READER_DB_SSL_MODE=disable
|
||||
MF_TIMESCALE_READER_DB_SSL_CERT=""
|
||||
MF_TIMESCALE_READER_DB_SSL_KEY=""
|
||||
MF_TIMESCALE_READER_DB_SSL_ROOT_CERT=""
|
||||
MF_TIMESCALE_READER_INSTANCE_ID=
|
||||
|
||||
### Twins
|
||||
MF_TWINS_LOG_LEVEL=debug
|
||||
@@ -344,6 +365,7 @@ MF_TWINS_CHANNEL_ID=
|
||||
MF_TWINS_CACHE_URL=es-redis:6379
|
||||
MF_TWINS_CACHE_PASS=
|
||||
MF_TWINS_CACHE_DB=0
|
||||
MF_TWINS_INSTANCE_ID=
|
||||
|
||||
### SMTP Notifier
|
||||
MF_SMTP_NOTIFIER_PORT=9015
|
||||
@@ -354,6 +376,7 @@ MF_SMTP_NOTIFIER_DB_PASS=mainflux
|
||||
MF_SMTP_NOTIFIER_DB=subscriptions
|
||||
MF_SMTP_NOTIFIER_TEMPLATE=smtp-notifier.tmpl
|
||||
MF_SMTP_NOTIFIER_FROM_ADDR=from@example.com
|
||||
MF_SMTP_NOTIFIER_INSTANCE_ID=
|
||||
|
||||
### SMPP Notifier
|
||||
MF_SMPP_NOTIFIER_PORT=9014
|
||||
@@ -372,6 +395,7 @@ MF_SMPP_SRC_ADDR_TON=5
|
||||
MF_SMPP_SRC_ADDR_NPI=0
|
||||
MF_SMPP_DST_ADDR_TON=1
|
||||
MF_SMPP_DST_ADDR_NPI=1
|
||||
MF_SMPP_NOTIFIER_INSTANCE_ID=
|
||||
|
||||
### GRAFANA and PROMETHEUS
|
||||
MF_PROMETHEUS_PORT=9090
|
||||
|
||||
@@ -53,5 +53,6 @@ services:
|
||||
MF_AUTH_GRPC_TIMMEOUT: ${MF_USERS_GRPC_TIMEOUT}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_BOOTSTRAP_INSTANCE_ID: ${MF_BOOTSTRAP_INSTANCE_ID}
|
||||
networks:
|
||||
- docker_mainflux-base-net
|
||||
|
||||
@@ -29,6 +29,7 @@ services:
|
||||
MF_AUTH_GRPC_URL: ${MF_USERS_GRPC_URL}
|
||||
MF_AUTH_GRPC_TIMEOUT : ${MF_USERS_GRPC_TIMEOUT}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_CASSANDRA_READER_INSTANCE_ID: ${MF_CASSANDRA_READER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_CASSANDRA_READER_PORT}:${MF_CASSANDRA_READER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -42,6 +42,7 @@ services:
|
||||
MF_CASSANDRA_WRITER_DB_KEYSPACE: ${MF_CASSANDRA_WRITER_DB_KEYSPACE}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_CASSANDRA_WRITER_INSANCE_ID: ${MF_CASSANDRA_WRITER_INSANCE_ID}
|
||||
ports:
|
||||
- ${MF_CASSANDRA_WRITER_PORT}:${MF_CASSANDRA_WRITER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -70,6 +70,7 @@ services:
|
||||
MF_AUTH_GRPC_TIMEOUT: ${MF_USERS_GRPC_TIMEOUT}
|
||||
MF_CERTS_VAULT_HOST: ${MF_CERTS_VAULT_HOST}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_CERTS_INSTANCE_ID: ${MF_CERTS_INSTANCE_ID}
|
||||
volumes:
|
||||
- ../../ssl/certs/ca.key:/etc/ssl/certs/ca.key
|
||||
- ../../ssl/certs/ca.crt:/etc/ssl/certs/ca.crt
|
||||
|
||||
@@ -37,6 +37,7 @@ services:
|
||||
MF_AUTH_GRPC_URL: ${MF_USERS_GRPC_URL}
|
||||
MF_AUTH_GRPC_TIMEOUT : ${MF_USERS_GRPC_TIMEOUT}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_INFLUX_READER_INSTANCE_ID: ${MF_INFLUX_READER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_INFLUX_READER_PORT}:${MF_INFLUX_READER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -56,6 +56,7 @@ services:
|
||||
MF_INFLUXDB_ADMIN_PASSWORD: ${MF_INFLUXDB_ADMIN_PASSWORD}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_INFLUX_WRITER_INSTANCE_ID: ${MF_INFLUX_WRITER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_INFLUX_WRITER_PORT}:${MF_INFLUX_WRITER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -36,6 +36,7 @@ services:
|
||||
MF_LORA_ADAPTER_HTTP_PORT: ${MF_LORA_ADAPTER_HTTP_PORT}
|
||||
MF_BROKER_URL: ${MF_BROKER_URL}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_LORA_ADAPTER_INSTANCE_ID: ${MF_LORA_ADAPTER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_LORA_ADAPTER_HTTP_PORT}:${MF_LORA_ADAPTER_HTTP_PORT}
|
||||
networks:
|
||||
|
||||
@@ -31,6 +31,7 @@ services:
|
||||
MF_AUTH_GRPC_URL: ${MF_USERS_GRPC_URL}
|
||||
MF_AUTH_GRPC_TIMEOUT : ${MF_USERS_GRPC_TIMEOUT}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_MONGO_READER_INSTANCE_ID: ${MF_MONGO_READER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_MONGO_READER_PORT}:${MF_MONGO_READER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -48,6 +48,7 @@ services:
|
||||
MF_MONGO_WRITER_DB_PORT: ${MF_MONGO_WRITER_DB_PORT}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_MONGO_WRITER_INSTANCE_ID: ${MF_MONGO_WRITER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_MONGO_WRITER_PORT}:${MF_MONGO_WRITER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -46,6 +46,7 @@ services:
|
||||
MF_THINGS_ES_DB: ${MF_THINGS_ES_DB}
|
||||
MF_OPCUA_ADAPTER_EVENT_CONSUMER: ${MF_OPCUA_ADAPTER_EVENT_CONSUMER}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_OPCUA_ADAPTER_INSTANCE_ID: ${MF_OPCUA_ADAPTER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_OPCUA_ADAPTER_HTTP_PORT}:${MF_OPCUA_ADAPTER_HTTP_PORT}
|
||||
networks:
|
||||
|
||||
@@ -37,6 +37,7 @@ services:
|
||||
MF_AUTH_GRPC_URL: ${MF_USERS_GRPC_URL}
|
||||
MF_AUTH_GRPC_TIMEOUT : ${MF_USERS_GRPC_TIMEOUT}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_POSTGRES_READER_INSTANCE_ID: ${MF_POSTGRES_READER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_POSTGRES_READER_PORT}:${MF_POSTGRES_READER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -52,6 +52,7 @@ services:
|
||||
MF_POSTGRES_WRITER_DB_SSL_ROOT_CERT: ${MF_POSTGRES_WRITER_DB_SSL_ROOT_CERT}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_POSTGRES_WRITER_INSTANCE_ID: ${MF_POSTGRES_WRITER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_POSTGRES_WRITER_PORT}:${MF_POSTGRES_WRITER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -43,6 +43,7 @@ services:
|
||||
MF_PROVISION_CERTS_RSA_BITS: ${MF_PROVISION_CERTS_RSA_BITS}
|
||||
MF_PROVISION_CERTS_HOURS_VALID: ${MF_PROVISION_CERTS_HOURS_VALID}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_PROVISION_INSTANCE_ID: ${MF_PROVISION_INSTANCE_ID}
|
||||
volumes:
|
||||
- ./configs:/configs
|
||||
- ../../ssl/certs/ca.key:/etc/ssl/certs/ca.key
|
||||
|
||||
@@ -57,6 +57,7 @@ services:
|
||||
MF_SMPP_DST_ADDR_TON: ${MF_SMPP_DST_ADDR_TON}
|
||||
MF_SMPP_DST_ADDR_NPI: ${MF_SMPP_DST_ADDR_NPI}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_SMPP_NOTIFIER_INSTANCE_ID: ${MF_SMPP_NOTIFIER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_SMPP_NOTIFIER_PORT}:${MF_SMPP_NOTIFIER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -57,6 +57,7 @@ services:
|
||||
MF_SMTP_NOTIFIER_TEMPLATE: ${MF_SMTP_NOTIFIER_TEMPLATE}
|
||||
MF_SMTP_NOTIFIER_FROM_ADDR: ${MF_SMTP_NOTIFIER_FROM_ADDR}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_SMTP_NOTIFIER_INSTANCE_ID: ${MF_SMTP_NOTIFIER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_SMTP_NOTIFIER_PORT}:${MF_SMTP_NOTIFIER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -37,6 +37,7 @@ services:
|
||||
MF_AUTH_GRPC_URL: ${MF_USERS_GRPC_URL}
|
||||
MF_AUTH_GRPC_TIMEOUT : ${MF_USERS_GRPC_TIMEOUT}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_TIMESCALE_READER_INSTANCE_ID: ${MF_TIMESCALE_READER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_TIMESCALE_READER_PORT}:${MF_TIMESCALE_READER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -52,6 +52,7 @@ services:
|
||||
MF_TIMESCALE_WRITER_DB_SSL_ROOT_CERT: ${MF_TIMESCALE_WRITER_DB_SSL_ROOT_CERT}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_TIMESCALE_WRITER_INSTANCE_ID: ${MF_TIMESCALE_WRITER_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_TIMESCALE_WRITER_PORT}:${MF_TIMESCALE_WRITER_PORT}
|
||||
networks:
|
||||
|
||||
@@ -52,6 +52,7 @@ services:
|
||||
MF_THINGS_STANDALONE_ID: ${MF_THINGS_STANDALONE_ID}
|
||||
MF_THINGS_STANDALONE_TOKEN: ${MF_THINGS_STANDALONE_TOKEN}
|
||||
MF_SEND_TELEMETRY: ${MF_SEND_TELEMETRY}
|
||||
MF_TWINS_INSTANCE_ID: ${MF_TWINS_INSTANCE_ID}
|
||||
ports:
|
||||
- ${MF_TWINS_HTTP_PORT}:${MF_TWINS_HTTP_PORT}
|
||||
networks:
|
||||
|
||||
@@ -216,6 +216,7 @@ services:
|
||||
MF_MQTT_ADAPTER_MQTT_TARGET_HEALTH_CHECK: http://vernemq:8888/health
|
||||
MF_MQTT_ADAPTER_WS_TARGET_HOST: vernemq
|
||||
MF_MQTT_ADAPTER_WS_TARGET_PORT: ${MF_MQTT_BROKER_WS_PORT}
|
||||
MF_MQTT_ADAPTER_INSTANCE_ID: ${MF_MQTT_ADAPTER_INSTANCE_ID}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
|
||||
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
|
||||
@@ -234,6 +235,7 @@ services:
|
||||
environment:
|
||||
MF_HTTP_ADAPTER_LOG_LEVEL: debug
|
||||
MF_HTTP_ADAPTER_PORT: ${MF_HTTP_ADAPTER_PORT}
|
||||
MF_HTTP_ADAPTER_INSTANCE_ID: ${MF_HTTP_ADAPTER_INSTANCE_ID}
|
||||
MF_BROKER_URL: ${MF_BROKER_URL}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
|
||||
@@ -263,6 +265,7 @@ services:
|
||||
environment:
|
||||
MF_COAP_ADAPTER_LOG_LEVEL: ${MF_COAP_ADAPTER_LOG_LEVEL}
|
||||
MF_COAP_ADAPTER_PORT: ${MF_COAP_ADAPTER_PORT}
|
||||
MF_COAP_ADAPTER_INSTANCE_ID: ${MF_COAP_ADAPTER_INSTANCE_ID}
|
||||
MF_BROKER_URL: ${MF_BROKER_URL}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
|
||||
@@ -284,6 +287,7 @@ services:
|
||||
environment:
|
||||
MF_WS_ADAPTER_LOG_LEVEL: ${MF_WS_ADAPTER_LOG_LEVEL}
|
||||
MF_WS_ADAPTER_PORT: ${MF_WS_ADAPTER_PORT}
|
||||
MF_WS_ADAPTER_INSTANCE_ID: ${MF_WS_ADAPTER_INSTANCE_ID}
|
||||
MF_BROKER_URL: ${MF_BROKER_URL}
|
||||
MF_JAEGER_URL: ${MF_JAEGER_URL}
|
||||
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
|
||||
|
||||
@@ -46,10 +46,13 @@ type HealthInfo struct {
|
||||
|
||||
// BuildTime contains service build time.
|
||||
BuildTime string `json:"build_time"`
|
||||
|
||||
// InstanceID contains the ID of the current service instance
|
||||
InstanceID string `json:"instance_id"`
|
||||
}
|
||||
|
||||
// Health exposes an HTTP handler for retrieving service health.
|
||||
func Health(service string) http.HandlerFunc {
|
||||
func Health(service, instanceID string) http.HandlerFunc {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Add(contentType, contentTypeJSON)
|
||||
if r.Method != http.MethodGet && r.Method != http.MethodHead {
|
||||
@@ -63,6 +66,7 @@ func Health(service string) http.HandlerFunc {
|
||||
Commit: Commit,
|
||||
Description: service + description,
|
||||
BuildTime: BuildTime,
|
||||
InstanceID: instanceID,
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusOK)
|
||||
|
||||
@@ -19,13 +19,15 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
const instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
|
||||
func newService(cc policies.ThingsServiceClient) adapter.Service {
|
||||
pub := mocks.NewPublisher()
|
||||
return adapter.New(pub, cc)
|
||||
}
|
||||
|
||||
func newHTTPServer(svc adapter.Service) *httptest.Server {
|
||||
mux := api.MakeHandler(svc)
|
||||
mux := api.MakeHandler(svc, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ var (
|
||||
var channelPartRegExp = regexp.MustCompile(`^/channels/([\w\-]+)/messages(/[^?]*)?(\?.*)?$`)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc adapter.Service) http.Handler {
|
||||
func MakeHandler(svc adapter.Service, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(encodeError),
|
||||
}
|
||||
@@ -61,7 +61,7 @@ func MakeHandler(svc adapter.Service) http.Handler {
|
||||
opts...,
|
||||
))
|
||||
|
||||
r.GetFunc("/health", mainflux.Health("http"))
|
||||
r.GetFunc("/health", mainflux.Health("http", instanceID))
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return r
|
||||
|
||||
@@ -22,7 +22,7 @@ var (
|
||||
)
|
||||
|
||||
// NewProvider initializes Jaeger TraceProvider.
|
||||
func NewProvider(svcName, url string) (*tracesdk.TracerProvider, error) {
|
||||
func NewProvider(svcName, url, instanceID string) (*tracesdk.TracerProvider, error) {
|
||||
if url == "" {
|
||||
return nil, errNoURL
|
||||
}
|
||||
@@ -36,7 +36,10 @@ func NewProvider(svcName, url string) (*tracesdk.TracerProvider, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
attributes := []attribute.KeyValue{semconv.ServiceNameKey.String(svcName)}
|
||||
attributes := []attribute.KeyValue{
|
||||
semconv.ServiceNameKey.String(svcName),
|
||||
attribute.String("InstanceID", instanceID),
|
||||
}
|
||||
|
||||
hostAttr, err := resource.New(context.TODO(), resource.WithHost(), resource.WithOSDescription(), resource.WithContainer())
|
||||
if err != nil {
|
||||
|
||||
+2
-2
@@ -12,9 +12,9 @@ import (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler() http.Handler {
|
||||
func MakeHandler(instanceID string) http.Handler {
|
||||
r := bone.New()
|
||||
r.GetFunc("/health", mainflux.Health("lora-adapter"))
|
||||
r.GetFunc("/health", mainflux.Health("lora-adapter", instanceID))
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return r
|
||||
|
||||
@@ -28,7 +28,7 @@ const (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc opcua.Service, logger mflog.Logger) http.Handler {
|
||||
func MakeHandler(svc opcua.Service, logger mflog.Logger, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, encodeError)),
|
||||
}
|
||||
@@ -42,7 +42,7 @@ func MakeHandler(svc opcua.Service, logger mflog.Logger) http.Handler {
|
||||
opts...,
|
||||
))
|
||||
|
||||
r.GetFunc("/health", mainflux.Health("opcua-adapter"))
|
||||
r.GetFunc("/health", mainflux.Health("opcua-adapter", instanceID))
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return r
|
||||
|
||||
@@ -29,6 +29,8 @@ import (
|
||||
upolicies "github.com/mainflux/mainflux/users/policies"
|
||||
)
|
||||
|
||||
const instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
|
||||
var (
|
||||
thingsNum = 1
|
||||
thingKey = "thingKey"
|
||||
@@ -88,7 +90,7 @@ func newCertService() (certs.Service, error) {
|
||||
|
||||
func newCertServer(svc certs.Service) *httptest.Server {
|
||||
logger := logger.NewMock()
|
||||
mux := httpapi.MakeHandler(svc, logger)
|
||||
mux := httpapi.MakeHandler(svc, logger, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
@@ -41,14 +41,14 @@ func newSubscriptionService() notifiers.Service {
|
||||
notifier := mocks.NewNotifier()
|
||||
idp := uuid.NewMock()
|
||||
from := "exampleFrom"
|
||||
|
||||
|
||||
return notifiers.New(auth, repo, idp, notifier, from)
|
||||
}
|
||||
|
||||
func newSubscriptionServer(svc notifiers.Service) *httptest.Server {
|
||||
logger := logger.NewMock()
|
||||
mux := httpapi.MakeHandler(svc, logger)
|
||||
|
||||
mux := httpapi.MakeHandler(svc, logger, instanceID)
|
||||
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ func newMessageService(cc policies.ThingsServiceClient) adapter.Service {
|
||||
}
|
||||
|
||||
func newMessageServer(svc adapter.Service) *httptest.Server {
|
||||
mux := api.MakeHandler(svc)
|
||||
mux := api.MakeHandler(svc, instanceID)
|
||||
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ var (
|
||||
func newThingsServer(svc clients.Service, psvc policies.Service) *httptest.Server {
|
||||
logger := mflog.NewMock()
|
||||
mux := bone.New()
|
||||
api.MakeHandler(svc, mux, logger)
|
||||
api.MakeHandler(svc, mux, logger, instanceID)
|
||||
papi.MakeHandler(svc, psvc, mux, logger)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ var id = generateUUID(&testing.T{})
|
||||
func newClientServer(svc clients.Service) *httptest.Server {
|
||||
logger := mflog.NewMock()
|
||||
mux := bone.New()
|
||||
api.MakeHandler(svc, mux, logger)
|
||||
api.MakeHandler(svc, mux, logger, instanceID)
|
||||
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ const (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc provision.Service, logger logger.Logger) http.Handler {
|
||||
func MakeHandler(svc provision.Service, logger logger.Logger, instanceID string) http.Handler {
|
||||
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, encodeError)),
|
||||
@@ -43,7 +43,7 @@ func MakeHandler(svc provision.Service, logger logger.Logger) http.Handler {
|
||||
))
|
||||
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
r.GetFunc("/health", mainflux.Health("provision"))
|
||||
r.GetFunc("/health", mainflux.Health("provision", instanceID))
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ const (
|
||||
mqttProt = "mqtt"
|
||||
httpProt = "http"
|
||||
msgName = "temperature"
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -49,7 +50,7 @@ var (
|
||||
)
|
||||
|
||||
func newServer(repo readers.MessageRepository, tc tpolicies.ThingsServiceClient, ac upolicies.AuthServiceClient) *httptest.Server {
|
||||
mux := api.MakeHandler(repo, tc, ac, svcName)
|
||||
mux := api.MakeHandler(repo, tc, ac, svcName, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ var (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc readers.MessageRepository, tc tpolicies.ThingsServiceClient, ac upolicies.AuthServiceClient, svcName string) http.Handler {
|
||||
func MakeHandler(svc readers.MessageRepository, tc tpolicies.ThingsServiceClient, ac upolicies.AuthServiceClient, svcName, instanceID string) http.Handler {
|
||||
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(encodeError),
|
||||
@@ -62,7 +62,7 @@ func MakeHandler(svc readers.MessageRepository, tc tpolicies.ThingsServiceClient
|
||||
opts...,
|
||||
))
|
||||
|
||||
mux.GetFunc("/health", mainflux.Health(svcName))
|
||||
mux.GetFunc("/health", mainflux.Health(svcName, instanceID))
|
||||
mux.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return mux
|
||||
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc clients.Service, mux *bone.Mux, logger mflog.Logger) http.Handler {
|
||||
func MakeHandler(svc clients.Service, mux *bone.Mux, logger mflog.Logger, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, api.EncodeError)),
|
||||
}
|
||||
@@ -105,7 +105,7 @@ func MakeHandler(svc clients.Service, mux *bone.Mux, logger mflog.Logger) http.H
|
||||
opts...,
|
||||
))
|
||||
|
||||
mux.GetFunc("/health", mainflux.Health("things"))
|
||||
mux.GetFunc("/health", mainflux.Health("things", instanceID))
|
||||
mux.Handle("/metrics", promhttp.Handler())
|
||||
return mux
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ const (
|
||||
wrongValue = "wrong_value"
|
||||
wrongID = 0
|
||||
maxNameSize = 1024
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
var invalidName = strings.Repeat("m", maxNameSize+1)
|
||||
@@ -84,7 +85,7 @@ func (tr testRequest) make() (*http.Response, error) {
|
||||
|
||||
func newServer(svc twins.Service) *httptest.Server {
|
||||
logger := logger.NewMock()
|
||||
mux := httpapi.MakeHandler(svc, logger)
|
||||
mux := httpapi.MakeHandler(svc, logger, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ const (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc twins.Service, logger logger.Logger) http.Handler {
|
||||
func MakeHandler(svc twins.Service, logger logger.Logger, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, encodeError)),
|
||||
}
|
||||
@@ -80,7 +80,7 @@ func MakeHandler(svc twins.Service, logger logger.Logger) http.Handler {
|
||||
opts...,
|
||||
))
|
||||
|
||||
r.GetFunc("/health", mainflux.Health("twins"))
|
||||
r.GetFunc("/health", mainflux.Health("twins", instanceID))
|
||||
r.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return r
|
||||
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
)
|
||||
|
||||
// MakeHandler returns a HTTP handler for API endpoints.
|
||||
func MakeHandler(svc clients.Service, mux *bone.Mux, logger mflog.Logger) http.Handler {
|
||||
func MakeHandler(svc clients.Service, mux *bone.Mux, logger mflog.Logger, instanceID string) http.Handler {
|
||||
opts := []kithttp.ServerOption{
|
||||
kithttp.ServerErrorEncoder(apiutil.LoggingErrorEncoder(logger, api.EncodeError)),
|
||||
}
|
||||
@@ -140,7 +140,7 @@ func MakeHandler(svc clients.Service, mux *bone.Mux, logger mflog.Logger) http.H
|
||||
opts...,
|
||||
))
|
||||
|
||||
mux.GetFunc("/health", mainflux.Health("users"))
|
||||
mux.GetFunc("/health", mainflux.Health("users", instanceID))
|
||||
mux.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return mux
|
||||
|
||||
@@ -23,10 +23,11 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
chanID = "30315311-56ba-484d-b500-c1e08305511f"
|
||||
id = "1"
|
||||
thingKey = "c02ff576-ccd5-40f6-ba5f-c85377aad529"
|
||||
protocol = "ws"
|
||||
chanID = "30315311-56ba-484d-b500-c1e08305511f"
|
||||
id = "1"
|
||||
thingKey = "c02ff576-ccd5-40f6-ba5f-c85377aad529"
|
||||
protocol = "ws"
|
||||
instanceID = "5de9b29a-feb9-11ed-be56-0242ac120002"
|
||||
)
|
||||
|
||||
var msg = []byte(`[{"n":"current","t":-1,"v":1.6}]`)
|
||||
@@ -38,7 +39,7 @@ func newService(cc policies.ThingsServiceClient) (ws.Service, mocks.MockPubSub)
|
||||
|
||||
func newHTTPServer(svc ws.Service) *httptest.Server {
|
||||
logger := mflog.NewMock()
|
||||
mux := api.MakeHandler(svc, logger)
|
||||
mux := api.MakeHandler(svc, logger, instanceID)
|
||||
return httptest.NewServer(mux)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -35,13 +35,13 @@ var (
|
||||
)
|
||||
|
||||
// MakeHandler returns http handler with handshake endpoint.
|
||||
func MakeHandler(svc ws.Service, l mflog.Logger) http.Handler {
|
||||
func MakeHandler(svc ws.Service, l mflog.Logger, instanceID string) http.Handler {
|
||||
logger = l
|
||||
|
||||
mux := bone.New()
|
||||
mux.GetFunc("/channels/:chanID/messages", handshake(svc))
|
||||
mux.GetFunc("/channels/:chanID/messages/*", handshake(svc))
|
||||
mux.GetFunc("/version", mainflux.Health(protocol))
|
||||
mux.GetFunc("/version", mainflux.Health(protocol, instanceID))
|
||||
mux.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
return mux
|
||||
|
||||
Reference in New Issue
Block a user