mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 23:19:02 +08:00
fix: lowercase filter operator and increase default conn settings (#3310)
This commit is contained in:
parent
c35f2ec0aa
commit
abb8b2b122
@ -2,6 +2,7 @@ package api
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"go.signoz.io/signoz/ee/query-service/dao"
|
"go.signoz.io/signoz/ee/query-service/dao"
|
||||||
@ -20,6 +21,9 @@ type APIHandlerOptions struct {
|
|||||||
SkipConfig *basemodel.SkipConfig
|
SkipConfig *basemodel.SkipConfig
|
||||||
PreferDelta bool
|
PreferDelta bool
|
||||||
PreferSpanMetrics bool
|
PreferSpanMetrics bool
|
||||||
|
MaxIdleConns int
|
||||||
|
MaxOpenConns int
|
||||||
|
DialTimeout time.Duration
|
||||||
AppDao dao.ModelDao
|
AppDao dao.ModelDao
|
||||||
RulesManager *rules.Manager
|
RulesManager *rules.Manager
|
||||||
FeatureFlags baseint.FeatureLookup
|
FeatureFlags baseint.FeatureLookup
|
||||||
@ -40,6 +44,9 @@ func NewAPIHandler(opts APIHandlerOptions) (*APIHandler, error) {
|
|||||||
SkipConfig: opts.SkipConfig,
|
SkipConfig: opts.SkipConfig,
|
||||||
PerferDelta: opts.PreferDelta,
|
PerferDelta: opts.PreferDelta,
|
||||||
PreferSpanMetrics: opts.PreferSpanMetrics,
|
PreferSpanMetrics: opts.PreferSpanMetrics,
|
||||||
|
MaxIdleConns: opts.MaxIdleConns,
|
||||||
|
MaxOpenConns: opts.MaxOpenConns,
|
||||||
|
DialTimeout: opts.DialTimeout,
|
||||||
AppDao: opts.AppDao,
|
AppDao: opts.AppDao,
|
||||||
RuleManager: opts.RulesManager,
|
RuleManager: opts.RulesManager,
|
||||||
FeatureFlags: opts.FeatureFlags,
|
FeatureFlags: opts.FeatureFlags,
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package db
|
package db
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/ClickHouse/clickhouse-go/v2"
|
"github.com/ClickHouse/clickhouse-go/v2"
|
||||||
|
|
||||||
"github.com/jmoiron/sqlx"
|
"github.com/jmoiron/sqlx"
|
||||||
@ -15,8 +17,15 @@ type ClickhouseReader struct {
|
|||||||
*basechr.ClickHouseReader
|
*basechr.ClickHouseReader
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDataConnector(localDB *sqlx.DB, promConfigPath string, lm interfaces.FeatureLookup) *ClickhouseReader {
|
func NewDataConnector(
|
||||||
ch := basechr.NewReader(localDB, promConfigPath, lm)
|
localDB *sqlx.DB,
|
||||||
|
promConfigPath string,
|
||||||
|
lm interfaces.FeatureLookup,
|
||||||
|
maxIdleConns int,
|
||||||
|
maxOpenConns int,
|
||||||
|
dialTimeout time.Duration,
|
||||||
|
) *ClickhouseReader {
|
||||||
|
ch := basechr.NewReader(localDB, promConfigPath, lm, maxIdleConns, maxOpenConns, dialTimeout)
|
||||||
return &ClickhouseReader{
|
return &ClickhouseReader{
|
||||||
conn: ch.GetConn(),
|
conn: ch.GetConn(),
|
||||||
appdb: localDB,
|
appdb: localDB,
|
||||||
|
@ -59,6 +59,9 @@ type ServerOptions struct {
|
|||||||
RuleRepoURL string
|
RuleRepoURL string
|
||||||
PreferDelta bool
|
PreferDelta bool
|
||||||
PreferSpanMetrics bool
|
PreferSpanMetrics bool
|
||||||
|
MaxIdleConns int
|
||||||
|
MaxOpenConns int
|
||||||
|
DialTimeout time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
// Server runs HTTP api service
|
// Server runs HTTP api service
|
||||||
@ -122,7 +125,14 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
|
|||||||
storage := os.Getenv("STORAGE")
|
storage := os.Getenv("STORAGE")
|
||||||
if storage == "clickhouse" {
|
if storage == "clickhouse" {
|
||||||
zap.S().Info("Using ClickHouse as datastore ...")
|
zap.S().Info("Using ClickHouse as datastore ...")
|
||||||
qb := db.NewDataConnector(localDB, serverOptions.PromConfigPath, lm)
|
qb := db.NewDataConnector(
|
||||||
|
localDB,
|
||||||
|
serverOptions.PromConfigPath,
|
||||||
|
lm,
|
||||||
|
serverOptions.MaxIdleConns,
|
||||||
|
serverOptions.MaxOpenConns,
|
||||||
|
serverOptions.DialTimeout,
|
||||||
|
)
|
||||||
go qb.Start(readerReady)
|
go qb.Start(readerReady)
|
||||||
reader = qb
|
reader = qb
|
||||||
} else {
|
} else {
|
||||||
@ -184,6 +194,9 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
|
|||||||
SkipConfig: skipConfig,
|
SkipConfig: skipConfig,
|
||||||
PreferDelta: serverOptions.PreferDelta,
|
PreferDelta: serverOptions.PreferDelta,
|
||||||
PreferSpanMetrics: serverOptions.PreferSpanMetrics,
|
PreferSpanMetrics: serverOptions.PreferSpanMetrics,
|
||||||
|
MaxIdleConns: serverOptions.MaxIdleConns,
|
||||||
|
MaxOpenConns: serverOptions.MaxOpenConns,
|
||||||
|
DialTimeout: serverOptions.DialTimeout,
|
||||||
AppDao: modelDao,
|
AppDao: modelDao,
|
||||||
RulesManager: rm,
|
RulesManager: rm,
|
||||||
FeatureFlags: lm,
|
FeatureFlags: lm,
|
||||||
|
@ -86,11 +86,18 @@ func main() {
|
|||||||
var preferDelta bool
|
var preferDelta bool
|
||||||
var preferSpanMetrics bool
|
var preferSpanMetrics bool
|
||||||
|
|
||||||
|
var maxIdleConns int
|
||||||
|
var maxOpenConns int
|
||||||
|
var dialTimeout time.Duration
|
||||||
|
|
||||||
flag.StringVar(&promConfigPath, "config", "./config/prometheus.yml", "(prometheus config to read metrics)")
|
flag.StringVar(&promConfigPath, "config", "./config/prometheus.yml", "(prometheus config to read metrics)")
|
||||||
flag.StringVar(&skipTopLvlOpsPath, "skip-top-level-ops", "", "(config file to skip top level operations)")
|
flag.StringVar(&skipTopLvlOpsPath, "skip-top-level-ops", "", "(config file to skip top level operations)")
|
||||||
flag.BoolVar(&disableRules, "rules.disable", false, "(disable rule evaluation)")
|
flag.BoolVar(&disableRules, "rules.disable", false, "(disable rule evaluation)")
|
||||||
flag.BoolVar(&preferDelta, "prefer-delta", false, "(prefer delta over cumulative metrics)")
|
flag.BoolVar(&preferDelta, "prefer-delta", false, "(prefer delta over cumulative metrics)")
|
||||||
flag.BoolVar(&preferSpanMetrics, "prefer-span-metrics", false, "(prefer span metrics for service level metrics)")
|
flag.BoolVar(&preferSpanMetrics, "prefer-span-metrics", false, "(prefer span metrics for service level metrics)")
|
||||||
|
flag.IntVar(&maxIdleConns, "max-idle-conns", 50, "(number of connections to maintain in the pool.)")
|
||||||
|
flag.IntVar(&maxOpenConns, "max-open-conns", 100, "(max connections for use at any time.)")
|
||||||
|
flag.DurationVar(&dialTimeout, "dial-timeout", 5*time.Second, "(the maximum time to establish a connection.)")
|
||||||
flag.StringVar(&ruleRepoURL, "rules.repo-url", baseconst.AlertHelpPage, "(host address used to build rule link in alert messages)")
|
flag.StringVar(&ruleRepoURL, "rules.repo-url", baseconst.AlertHelpPage, "(host address used to build rule link in alert messages)")
|
||||||
flag.BoolVar(&enableQueryServiceLogOTLPExport, "enable.query.service.log.otlp.export", false, "(enable query service log otlp export)")
|
flag.BoolVar(&enableQueryServiceLogOTLPExport, "enable.query.service.log.otlp.export", false, "(enable query service log otlp export)")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
@ -111,6 +118,9 @@ func main() {
|
|||||||
PrivateHostPort: baseconst.PrivateHostPort,
|
PrivateHostPort: baseconst.PrivateHostPort,
|
||||||
DisableRules: disableRules,
|
DisableRules: disableRules,
|
||||||
RuleRepoURL: ruleRepoURL,
|
RuleRepoURL: ruleRepoURL,
|
||||||
|
MaxIdleConns: maxIdleConns,
|
||||||
|
MaxOpenConns: maxOpenConns,
|
||||||
|
DialTimeout: dialTimeout,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the jwt secret key
|
// Read the jwt secret key
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ClickHouse/clickhouse-go/v2"
|
"github.com/ClickHouse/clickhouse-go/v2"
|
||||||
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Encoding string
|
type Encoding string
|
||||||
@ -58,6 +59,9 @@ type namespaceConfig struct {
|
|||||||
namespace string
|
namespace string
|
||||||
Enabled bool
|
Enabled bool
|
||||||
Datasource string
|
Datasource string
|
||||||
|
MaxIdleConns int
|
||||||
|
MaxOpenConns int
|
||||||
|
DialTimeout time.Duration
|
||||||
TraceDB string
|
TraceDB string
|
||||||
OperationsTable string
|
OperationsTable string
|
||||||
IndexTable string
|
IndexTable string
|
||||||
@ -88,8 +92,14 @@ type Connector func(cfg *namespaceConfig) (clickhouse.Conn, error)
|
|||||||
func defaultConnector(cfg *namespaceConfig) (clickhouse.Conn, error) {
|
func defaultConnector(cfg *namespaceConfig) (clickhouse.Conn, error) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
dsnURL, err := url.Parse(cfg.Datasource)
|
dsnURL, err := url.Parse(cfg.Datasource)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
options := &clickhouse.Options{
|
options := &clickhouse.Options{
|
||||||
Addr: []string{dsnURL.Host},
|
Addr: []string{dsnURL.Host},
|
||||||
|
MaxOpenConns: cfg.MaxOpenConns,
|
||||||
|
MaxIdleConns: cfg.MaxIdleConns,
|
||||||
|
DialTimeout: cfg.DialTimeout,
|
||||||
}
|
}
|
||||||
if dsnURL.Query().Get("username") != "" {
|
if dsnURL.Query().Get("username") != "" {
|
||||||
auth := clickhouse.Auth{
|
auth := clickhouse.Auth{
|
||||||
@ -98,6 +108,7 @@ func defaultConnector(cfg *namespaceConfig) (clickhouse.Conn, error) {
|
|||||||
}
|
}
|
||||||
options.Auth = auth
|
options.Auth = auth
|
||||||
}
|
}
|
||||||
|
zap.S().Infof("Connecting to Clickhouse at %s, MaxIdleConns: %d, MaxOpenConns: %d, DialTimeout: %s", dsnURL.Host, options.MaxIdleConns, options.MaxOpenConns, options.DialTimeout)
|
||||||
db, err := clickhouse.Open(options)
|
db, err := clickhouse.Open(options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -118,7 +129,14 @@ type Options struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewOptions creates a new Options struct.
|
// NewOptions creates a new Options struct.
|
||||||
func NewOptions(datasource string, primaryNamespace string, otherNamespaces ...string) *Options {
|
func NewOptions(
|
||||||
|
datasource string,
|
||||||
|
maxIdleConns int,
|
||||||
|
maxOpenConns int,
|
||||||
|
dialTimeout time.Duration,
|
||||||
|
primaryNamespace string,
|
||||||
|
otherNamespaces ...string,
|
||||||
|
) *Options {
|
||||||
|
|
||||||
if datasource == "" {
|
if datasource == "" {
|
||||||
datasource = defaultDatasource
|
datasource = defaultDatasource
|
||||||
@ -129,6 +147,9 @@ func NewOptions(datasource string, primaryNamespace string, otherNamespaces ...s
|
|||||||
namespace: primaryNamespace,
|
namespace: primaryNamespace,
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
Datasource: datasource,
|
Datasource: datasource,
|
||||||
|
MaxIdleConns: maxIdleConns,
|
||||||
|
MaxOpenConns: maxOpenConns,
|
||||||
|
DialTimeout: dialTimeout,
|
||||||
TraceDB: defaultTraceDB,
|
TraceDB: defaultTraceDB,
|
||||||
OperationsTable: defaultOperationsTable,
|
OperationsTable: defaultOperationsTable,
|
||||||
IndexTable: defaultIndexTable,
|
IndexTable: defaultIndexTable,
|
||||||
|
@ -119,10 +119,17 @@ type ClickHouseReader struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewTraceReader returns a TraceReader for the database
|
// NewTraceReader returns a TraceReader for the database
|
||||||
func NewReader(localDB *sqlx.DB, configFile string, featureFlag interfaces.FeatureLookup) *ClickHouseReader {
|
func NewReader(
|
||||||
|
localDB *sqlx.DB,
|
||||||
|
configFile string,
|
||||||
|
featureFlag interfaces.FeatureLookup,
|
||||||
|
maxIdleConns int,
|
||||||
|
maxOpenConns int,
|
||||||
|
dialTimeout time.Duration,
|
||||||
|
) *ClickHouseReader {
|
||||||
|
|
||||||
datasource := os.Getenv("ClickHouseUrl")
|
datasource := os.Getenv("ClickHouseUrl")
|
||||||
options := NewOptions(datasource, primaryNamespace, archiveNamespace)
|
options := NewOptions(datasource, maxIdleConns, maxOpenConns, dialTimeout, primaryNamespace, archiveNamespace)
|
||||||
db, err := initialize(options)
|
db, err := initialize(options)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -77,6 +77,10 @@ type APIHandler struct {
|
|||||||
preferDelta bool
|
preferDelta bool
|
||||||
preferSpanMetrics bool
|
preferSpanMetrics bool
|
||||||
|
|
||||||
|
maxIdleConns int
|
||||||
|
maxOpenConns int
|
||||||
|
dialTimeout time.Duration
|
||||||
|
|
||||||
LogsParsingPipelineController *logparsingpipeline.LogParsingPipelineController
|
LogsParsingPipelineController *logparsingpipeline.LogParsingPipelineController
|
||||||
|
|
||||||
// SetupCompleted indicates if SigNoz is ready for general use.
|
// SetupCompleted indicates if SigNoz is ready for general use.
|
||||||
@ -94,6 +98,11 @@ type APIHandlerOpts struct {
|
|||||||
|
|
||||||
PerferDelta bool
|
PerferDelta bool
|
||||||
PreferSpanMetrics bool
|
PreferSpanMetrics bool
|
||||||
|
|
||||||
|
MaxIdleConns int
|
||||||
|
MaxOpenConns int
|
||||||
|
DialTimeout time.Duration
|
||||||
|
|
||||||
// dao layer to perform crud on app objects like dashboard, alerts etc
|
// dao layer to perform crud on app objects like dashboard, alerts etc
|
||||||
AppDao dao.ModelDao
|
AppDao dao.ModelDao
|
||||||
|
|
||||||
@ -121,6 +130,9 @@ func NewAPIHandler(opts APIHandlerOpts) (*APIHandler, error) {
|
|||||||
skipConfig: opts.SkipConfig,
|
skipConfig: opts.SkipConfig,
|
||||||
preferDelta: opts.PerferDelta,
|
preferDelta: opts.PerferDelta,
|
||||||
preferSpanMetrics: opts.PreferSpanMetrics,
|
preferSpanMetrics: opts.PreferSpanMetrics,
|
||||||
|
maxIdleConns: opts.MaxIdleConns,
|
||||||
|
maxOpenConns: opts.MaxOpenConns,
|
||||||
|
dialTimeout: opts.DialTimeout,
|
||||||
alertManager: alertManager,
|
alertManager: alertManager,
|
||||||
ruleManager: opts.RuleManager,
|
ruleManager: opts.RuleManager,
|
||||||
featureFlags: opts.FeatureFlags,
|
featureFlags: opts.FeatureFlags,
|
||||||
|
@ -51,6 +51,9 @@ type ServerOptions struct {
|
|||||||
RuleRepoURL string
|
RuleRepoURL string
|
||||||
PreferDelta bool
|
PreferDelta bool
|
||||||
PreferSpanMetrics bool
|
PreferSpanMetrics bool
|
||||||
|
MaxIdleConns int
|
||||||
|
MaxOpenConns int
|
||||||
|
DialTimeout time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
// Server runs HTTP, Mux and a grpc server
|
// Server runs HTTP, Mux and a grpc server
|
||||||
@ -103,7 +106,14 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
|
|||||||
storage := os.Getenv("STORAGE")
|
storage := os.Getenv("STORAGE")
|
||||||
if storage == "clickhouse" {
|
if storage == "clickhouse" {
|
||||||
zap.S().Info("Using ClickHouse as datastore ...")
|
zap.S().Info("Using ClickHouse as datastore ...")
|
||||||
clickhouseReader := clickhouseReader.NewReader(localDB, serverOptions.PromConfigPath, fm)
|
clickhouseReader := clickhouseReader.NewReader(
|
||||||
|
localDB,
|
||||||
|
serverOptions.PromConfigPath,
|
||||||
|
fm,
|
||||||
|
serverOptions.MaxIdleConns,
|
||||||
|
serverOptions.MaxOpenConns,
|
||||||
|
serverOptions.DialTimeout,
|
||||||
|
)
|
||||||
go clickhouseReader.Start(readerReady)
|
go clickhouseReader.Start(readerReady)
|
||||||
reader = clickhouseReader
|
reader = clickhouseReader
|
||||||
} else {
|
} else {
|
||||||
@ -136,6 +146,9 @@ func NewServer(serverOptions *ServerOptions) (*Server, error) {
|
|||||||
SkipConfig: skipConfig,
|
SkipConfig: skipConfig,
|
||||||
PerferDelta: serverOptions.PreferDelta,
|
PerferDelta: serverOptions.PreferDelta,
|
||||||
PreferSpanMetrics: serverOptions.PreferSpanMetrics,
|
PreferSpanMetrics: serverOptions.PreferSpanMetrics,
|
||||||
|
MaxIdleConns: serverOptions.MaxIdleConns,
|
||||||
|
MaxOpenConns: serverOptions.MaxOpenConns,
|
||||||
|
DialTimeout: serverOptions.DialTimeout,
|
||||||
AppDao: dao.DB(),
|
AppDao: dao.DB(),
|
||||||
RuleManager: rm,
|
RuleManager: rm,
|
||||||
FeatureFlags: fm,
|
FeatureFlags: fm,
|
||||||
|
@ -153,6 +153,7 @@ func buildTracesFilterQuery(fs *v3.FilterSet, keys map[string]v3.AttributeKey) (
|
|||||||
columnName := getColumnName(item.Key, keys)
|
columnName := getColumnName(item.Key, keys)
|
||||||
var fmtVal string
|
var fmtVal string
|
||||||
key := enrichKeyWithMetadata(item.Key, keys)
|
key := enrichKeyWithMetadata(item.Key, keys)
|
||||||
|
item.Operator = v3.FilterOperator(strings.ToLower(strings.TrimSpace(string(item.Operator))))
|
||||||
if item.Operator != v3.FilterOperatorExists && item.Operator != v3.FilterOperatorNotExists {
|
if item.Operator != v3.FilterOperatorExists && item.Operator != v3.FilterOperatorNotExists {
|
||||||
var err error
|
var err error
|
||||||
val, err = utils.ValidateAndCastValue(val, key.DataType)
|
val, err = utils.ValidateAndCastValue(val, key.DataType)
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
"time"
|
||||||
|
|
||||||
"go.signoz.io/signoz/pkg/query-service/app"
|
"go.signoz.io/signoz/pkg/query-service/app"
|
||||||
"go.signoz.io/signoz/pkg/query-service/auth"
|
"go.signoz.io/signoz/pkg/query-service/auth"
|
||||||
@ -37,11 +38,18 @@ func main() {
|
|||||||
var preferDelta bool
|
var preferDelta bool
|
||||||
var preferSpanMetrics bool
|
var preferSpanMetrics bool
|
||||||
|
|
||||||
|
var maxIdleConns int
|
||||||
|
var maxOpenConns int
|
||||||
|
var dialTimeout time.Duration
|
||||||
|
|
||||||
flag.StringVar(&promConfigPath, "config", "./config/prometheus.yml", "(prometheus config to read metrics)")
|
flag.StringVar(&promConfigPath, "config", "./config/prometheus.yml", "(prometheus config to read metrics)")
|
||||||
flag.StringVar(&skipTopLvlOpsPath, "skip-top-level-ops", "", "(config file to skip top level operations)")
|
flag.StringVar(&skipTopLvlOpsPath, "skip-top-level-ops", "", "(config file to skip top level operations)")
|
||||||
flag.BoolVar(&disableRules, "rules.disable", false, "(disable rule evaluation)")
|
flag.BoolVar(&disableRules, "rules.disable", false, "(disable rule evaluation)")
|
||||||
flag.BoolVar(&preferDelta, "prefer-delta", false, "(prefer delta over cumulative metrics)")
|
flag.BoolVar(&preferDelta, "prefer-delta", false, "(prefer delta over cumulative metrics)")
|
||||||
flag.BoolVar(&preferSpanMetrics, "prefer-span-metrics", false, "(prefer span metrics for service level metrics)")
|
flag.BoolVar(&preferSpanMetrics, "prefer-span-metrics", false, "(prefer span metrics for service level metrics)")
|
||||||
|
flag.IntVar(&maxIdleConns, "max-idle-conns", 50, "(number of connections to maintain in the pool.)")
|
||||||
|
flag.IntVar(&maxOpenConns, "max-open-conns", 100, "(max connections for use at any time.)")
|
||||||
|
flag.DurationVar(&dialTimeout, "dial-timeout", 5*time.Second, "(the maximum time to establish a connection.)")
|
||||||
flag.StringVar(&ruleRepoURL, "rules.repo-url", constants.AlertHelpPage, "(host address used to build rule link in alert messages)")
|
flag.StringVar(&ruleRepoURL, "rules.repo-url", constants.AlertHelpPage, "(host address used to build rule link in alert messages)")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
@ -61,6 +69,9 @@ func main() {
|
|||||||
PrivateHostPort: constants.PrivateHostPort,
|
PrivateHostPort: constants.PrivateHostPort,
|
||||||
DisableRules: disableRules,
|
DisableRules: disableRules,
|
||||||
RuleRepoURL: ruleRepoURL,
|
RuleRepoURL: ruleRepoURL,
|
||||||
|
MaxIdleConns: maxIdleConns,
|
||||||
|
MaxOpenConns: maxOpenConns,
|
||||||
|
DialTimeout: dialTimeout,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the jwt secret key
|
// Read the jwt secret key
|
||||||
|
Loading…
x
Reference in New Issue
Block a user