diff --git a/Makefile.d/k8s.mk b/Makefile.d/k8s.mk index 64bc323fa3..0122ecee39 100644 --- a/Makefile.d/k8s.mk +++ b/Makefile.d/k8s.mk @@ -317,17 +317,25 @@ k8s/metrics/metrics-server/delete: kubectl delete -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml .PHONY: k8s/metrics/prometheus/deploy -## deploy prometheus and grafana +## deploy prometheus k8s/metrics/prometheus/deploy: kubectl apply -f k8s/metrics/prometheus - kubectl create configmap grafana-dashboards --from-file=k8s/metrics/grafana/dashboards/ - kubectl apply -f k8s/metrics/grafana .PHONY: k8s/metrics/prometheus/delete -## delete prometheus and grafana +## delete prometheus k8s/metrics/prometheus/delete: kubectl delete -f k8s/metrics/prometheus - kubectl delete configmap grafana-dashboards + +.PHONY: k8s/metrics/grafana/deploy +## deploy grafana +k8s/metrics/grafana/deploy: + kubectl apply -f k8s/metrics/grafana/dashboards + kubectl apply -f k8s/metrics/grafana + +.PHONY: k8s/metrics/grafana/delete +## delete grafana +k8s/metrics/grafana/delete: + kubectl delete -f k8s/metrics/grafana/dashboards kubectl delete -f k8s/metrics/grafana .PHONY: k8s/metrics/jaeger/deploy @@ -340,6 +348,26 @@ k8s/metrics/jaeger/deploy: k8s/metrics/jaeger/delete: kubectl delete -f k8s/metrics/jaeger +.PHONY: k8s/metrics/loki/deploy +## deploy loki and promtail +k8s/metrics/loki/deploy: + kubectl apply -f k8s/metrics/loki + +.PHONY: k8s/metrics/loki/delete +## delete loki and promtail +k8s/metrics/loki/delete: + kubectl delete -f k8s/metrics/loki + +.PHONY: k8s/metrics/tempo/deploy +## deploy tempo and jaeger-agent +k8s/metrics/tempo/deploy: + kubectl apply -f k8s/metrics/tempo + +.PHONY: k8s/metrics/tempo/delete +## delete tempo and jaeger-agent +k8s/metrics/tempo/delete: + kubectl delete -f k8s/metrics/tempo + .PHONY: k8s/metrics/profefe/deploy ## deploy profefe k8s/metrics/profefe/deploy: diff --git a/charts/vald/values-observability-demo.yaml b/charts/vald/values-observability-demo.yaml new file mode 100644 index 0000000000..8a90291f65 --- /dev/null +++ b/charts/vald/values-observability-demo.yaml @@ -0,0 +1,40 @@ +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +defaults: + image: + tag: nightly + logging: + logger: zap + format: json + server_config: + servers: + grpc: + server: + grpc: + interceptors: + - AccessLogInterceptor + metrics: + prometheus: + enabled: true + observability: + enabled: true + trace: + enabled: true + prometheus: + enabled: true + jaeger: + enabled: true diff --git a/charts/vald/values.schema.json b/charts/vald/values.schema.json index e0cce9e0f6..91d47cc19d 100644 --- a/charts/vald/values.schema.json +++ b/charts/vald/values.schema.json @@ -1 +1 @@ -{"$schema":"http://json-schema.org/draft-07/schema#","title":"Values","type":"object","properties":{"agent":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["StatefulSet","Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"ngt":{"type":"object","properties":{"auto_create_index_pool_size":{"type":"integer"},"auto_index_check_duration":{"type":"string"},"auto_index_duration_limit":{"type":"string"},"auto_index_length":{"type":"integer"},"auto_save_index_duration":{"type":"string"},"bulk_insert_chunk_size":{"type":"integer"},"creation_edge_size":{"type":"integer"},"default_epsilon":{"type":"number"},"default_pool_size":{"type":"integer"},"default_radius":{"type":"number"},"dimension":{"type":"integer","minimum":1},"distance_type":{"type":"string","enum":["l1","l2","angle","hamming","cos","cosine","normalizedangle","normalizedcosine","jaccard"]},"enable_in_memory_mode":{"type":"boolean"},"enable_proactive_gc":{"type":"boolean"},"index_path":{"type":"string"},"initial_delay_max_duration":{"type":"string"},"load_index_timeout_factor":{"type":"string"},"max_load_index_timeout":{"type":"string"},"min_load_index_timeout":{"type":"string"},"object_type":{"type":"string","enum":["float","uint8"]},"search_edge_size":{"type":"integer"}}},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"persistentVolume":{"type":"object","properties":{"accessMode":{"type":"string"},"enabled":{"type":"boolean"},"size":{"type":"string"},"storageClass":{"type":"string"}}},"podAnnotations":{"type":"object"},"podManagementPolicy":{"type":"string","enum":["OrderedReady","Parallel"]},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"},"partition":{"type":"integer"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"sidecar":{"type":"object","properties":{"config":{"type":"object","properties":{"auto_backup_duration":{"type":"string"},"auto_backup_enabled":{"type":"boolean"},"blob_storage":{"type":"object","properties":{"bucket":{"type":"string"},"s3":{"type":"object","properties":{"access_key":{"type":"string"},"enable_100_continue":{"type":"boolean"},"enable_content_md5_validation":{"type":"boolean"},"enable_endpoint_discovery":{"type":"boolean"},"enable_endpoint_host_prefix":{"type":"boolean"},"enable_param_validation":{"type":"boolean"},"enable_ssl":{"type":"boolean"},"endpoint":{"type":"string"},"force_path_style":{"type":"boolean"},"max_chunk_size":{"type":"string","pattern":"^[0-9]+(kb|mb|gb)$"},"max_part_size":{"type":"string","pattern":"^[0-9]+(kb|mb|gb)$"},"max_retries":{"type":"integer"},"region":{"type":"string"},"secret_access_key":{"type":"string"},"token":{"type":"string"},"use_accelerate":{"type":"boolean"},"use_arn_region":{"type":"boolean"},"use_dual_stack":{"type":"boolean"}}},"storage_type":{"type":"string","enum":["s3"]}}},"client":{"type":"object","properties":{"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"transport":{"type":"object","properties":{"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"round_tripper":{"type":"object","properties":{"expect_continue_timeout":{"type":"string"},"force_attempt_http_2":{"type":"boolean"},"idle_conn_timeout":{"type":"string"},"max_conns_per_host":{"type":"integer"},"max_idle_conns":{"type":"integer"},"max_idle_conns_per_host":{"type":"integer"},"max_response_header_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"response_header_timeout":{"type":"string"},"tls_handshake_timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer"}}},"filename":{"type":"string"},"filename_suffix":{"type":"string"},"post_stop_timeout":{"type":"string"},"restore_backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"watch_enabled":{"type":"boolean"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainerEnabled":{"type":"boolean"},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"name":{"type":"string"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"externalTrafficPolicy":{"type":"string"},"labels":{"type":"object"},"type":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]}}},"time_zone":{"type":"string"},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"}}},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"backupManager":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"externalTrafficPolicy":{"type":"string"},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"revisionHistoryLimit":{"type":"integer","minimum":0},"securityContext":{"type":"object"},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"}}},"compressor":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"backup":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer"},"concurrent_limit":{"type":"integer"},"queue_check_duration":{"type":"string"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"registerer":{"type":"object","properties":{"compressor":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"concurrent_limit":{"type":"integer"},"queue_check_duration":{"type":"string"}}},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"defaults":{"type":"object","properties":{"grpc":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"image":{"type":"object","properties":{"tag":{"type":"string"}}},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"time_zone":{"type":"string"}}},"discoverer":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"clusterRole":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string"}}},"clusterRoleBinding":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string"}}},"discoverer":{"type":"object","properties":{"discovery_duration":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceAccount":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"gateway":{"type":"object","properties":{"backup":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"backup_client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"gateway_client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"lb":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"agent_namespace":{"type":"string"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"index_replica":{"type":"integer","minimum":1},"node_namespace":{"type":"string"}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"meta":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"gateway_client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"meta":{"type":"object","properties":{"cache_expiration":{"type":"string"},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"enable_cache":{"type":"boolean"},"expired_cache_check_duration":{"type":"string"}}}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"vald":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"agent_namespace":{"type":"string"},"backup":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"index_replica":{"type":"integer","minimum":1},"meta":{"type":"object","properties":{"cache_expiration":{"type":"string"},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"enable_cache":{"type":"boolean"},"expired_cache_check_duration":{"type":"string"}}},"node_namespace":{"type":"string"}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}}}},"indexManager":{"type":"object","properties":{"enabled":{"type":"boolean"},"externalTrafficPolicy":{"type":"string"},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxUnavailable":{"type":"string"},"name":{"type":"string"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"replicas":{"type":"integer","minimum":0},"revisionHistoryLimit":{"type":"integer","minimum":0},"securityContext":{"type":"object"},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"}}},"manager":{"type":"object","properties":{"backup":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"cassandra":{"type":"object","properties":{"config":{"type":"object","properties":{"connect_timeout":{"type":"string"},"consistency":{"type":"string","enum":["any","one","two","three","all","quorum","localquorum","eachquorum","localone"]},"cql_version":{"type":"string"},"default_idempotence":{"type":"boolean"},"default_timestamp":{"type":"boolean"},"disable_initial_host_lookup":{"type":"boolean"},"disable_node_status_events":{"type":"boolean"},"disable_skip_metadata":{"type":"boolean"},"disable_topology_events":{"type":"boolean"},"enable_host_verification":{"type":"boolean"},"host_filter":{"type":"object","properties":{"data_center":{"type":"string"},"enabled":{"type":"boolean"},"white_list":{"type":"array","items":{"type":"string"}}}},"hosts":{"type":"array","items":{"type":"string"}},"ignore_peer_addr":{"type":"boolean"},"keyspace":{"type":"string"},"max_prepared_stmts":{"type":"integer"},"max_routing_key_info":{"type":"integer"},"max_wait_schema_agreement":{"type":"string"},"num_conns":{"type":"integer"},"page_size":{"type":"integer"},"password":{"type":"string"},"pool_config":{"type":"object","properties":{"data_center":{"type":"string"},"dc_aware_routing":{"type":"boolean"},"non_local_replicas_fallback":{"type":"boolean"},"shuffle_replicas":{"type":"boolean"},"token_aware_host_policy":{"type":"boolean"}}},"port":{"type":"integer"},"proto_version":{"type":"integer"},"reconnect_interval":{"type":"string"},"reconnection_policy":{"type":"object","properties":{"initial_interval":{"type":"string"},"max_retries":{"type":"integer"}}},"retry_policy":{"type":"object","properties":{"max_duration":{"type":"string"},"min_duration":{"type":"string"},"num_retries":{"type":"integer"}}},"serial_consistency":{"type":"string","enum":["localserial","serial"]},"socket_keepalive":{"type":"string"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"username":{"type":"string"},"vector_backup_table":{"type":"string"},"write_coalesce_wait_time":{"type":"string"}}},"enabled":{"type":"boolean"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"mysql":{"type":"object","properties":{"config":{"type":"object","properties":{"conn_max_life_time":{"type":"string"},"db":{"type":"string","enum":["mysql","postgres","sqlite3"]},"host":{"type":"string"},"max_idle_conns":{"type":"integer"},"max_open_conns":{"type":"integer"},"name":{"type":"string"},"pass":{"type":"string"},"port":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"user":{"type":"string"}}},"enabled":{"type":"boolean"}}},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"compressor":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"backup":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer"},"concurrent_limit":{"type":"integer"},"queue_check_duration":{"type":"string"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"registerer":{"type":"object","properties":{"compressor":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"concurrent_limit":{"type":"integer"},"queue_check_duration":{"type":"string"}}},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"index":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"indexer":{"type":"object","properties":{"agent_namespace":{"type":"string"},"auto_index_check_duration":{"type":"string"},"auto_index_duration_limit":{"type":"string"},"auto_index_length":{"type":"integer"},"concurrency":{"type":"integer","minimum":1},"creation_pool_size":{"type":"integer"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"node_name":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxUnavailable":{"type":"string"},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"replicas":{"type":"integer","minimum":0},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}}}},"meta":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"cassandra":{"type":"object","properties":{"config":{"type":"object","properties":{"connect_timeout":{"type":"string"},"consistency":{"type":"string","enum":["any","one","two","three","all","quorum","localquorum","eachquorum","localone"]},"cql_version":{"type":"string"},"default_idempotence":{"type":"boolean"},"default_timestamp":{"type":"boolean"},"disable_initial_host_lookup":{"type":"boolean"},"disable_node_status_events":{"type":"boolean"},"disable_skip_metadata":{"type":"boolean"},"disable_topology_events":{"type":"boolean"},"enable_host_verification":{"type":"boolean"},"host_filter":{"type":"object","properties":{"data_center":{"type":"string"},"enabled":{"type":"boolean"},"white_list":{"type":"array","items":{"type":"string"}}}},"hosts":{"type":"array","items":{"type":"string"}},"ignore_peer_addr":{"type":"boolean"},"keyspace":{"type":"string"},"max_prepared_stmts":{"type":"integer"},"max_routing_key_info":{"type":"integer"},"max_wait_schema_agreement":{"type":"string"},"num_conns":{"type":"integer"},"page_size":{"type":"integer"},"password":{"type":"string"},"pool_config":{"type":"object","properties":{"data_center":{"type":"string"},"dc_aware_routing":{"type":"boolean"},"non_local_replicas_fallback":{"type":"boolean"},"shuffle_replicas":{"type":"boolean"},"token_aware_host_policy":{"type":"boolean"}}},"port":{"type":"integer"},"proto_version":{"type":"integer"},"reconnect_interval":{"type":"string"},"reconnection_policy":{"type":"object","properties":{"initial_interval":{"type":"string"},"max_retries":{"type":"integer"}}},"retry_policy":{"type":"object","properties":{"max_duration":{"type":"string"},"min_duration":{"type":"string"},"num_retries":{"type":"integer"}}},"serial_consistency":{"type":"string","enum":["localserial","serial"]},"socket_keepalive":{"type":"string"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"username":{"type":"string"},"vector_backup_table":{"type":"string"},"write_coalesce_wait_time":{"type":"string"}}},"enabled":{"type":"boolean"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"redis":{"type":"object","properties":{"config":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"db":{"type":"integer"},"dial_timeout":{"type":"string"},"idle_check_frequency":{"type":"string"},"idle_timeout":{"type":"string"},"key_pref":{"type":"string"},"kv_prefix":{"type":"string"},"max_conn_age":{"type":"string"},"max_redirects":{"type":"integer"},"max_retries":{"type":"integer"},"max_retry_backoff":{"type":"string"},"min_idle_conns":{"type":"integer"},"min_retry_backoff":{"type":"string"},"network":{"type":"string"},"password":{"type":"string"},"pool_size":{"type":"integer"},"pool_timeout":{"type":"string"},"prefix_delimiter":{"type":"string"},"read_only":{"type":"boolean"},"read_timeout":{"type":"string"},"route_by_latency":{"type":"boolean"},"route_randomly":{"type":"boolean"},"sentinel_master_name":{"type":"string"},"sentinel_password":{"type":"string"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"vk_prefix":{"type":"string"},"write_timeout":{"type":"string"}}},"enabled":{"type":"boolean"}}},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array"},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}}}} +{"$schema":"http://json-schema.org/draft-07/schema#","title":"Values","type":"object","properties":{"agent":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["StatefulSet","Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"ngt":{"type":"object","properties":{"auto_create_index_pool_size":{"type":"integer"},"auto_index_check_duration":{"type":"string"},"auto_index_duration_limit":{"type":"string"},"auto_index_length":{"type":"integer"},"auto_save_index_duration":{"type":"string"},"bulk_insert_chunk_size":{"type":"integer"},"creation_edge_size":{"type":"integer"},"default_epsilon":{"type":"number"},"default_pool_size":{"type":"integer"},"default_radius":{"type":"number"},"dimension":{"type":"integer","minimum":1},"distance_type":{"type":"string","enum":["l1","l2","angle","hamming","cos","cosine","normalizedangle","normalizedcosine","jaccard"]},"enable_in_memory_mode":{"type":"boolean"},"enable_proactive_gc":{"type":"boolean"},"index_path":{"type":"string"},"initial_delay_max_duration":{"type":"string"},"load_index_timeout_factor":{"type":"string"},"max_load_index_timeout":{"type":"string"},"min_load_index_timeout":{"type":"string"},"object_type":{"type":"string","enum":["float","uint8"]},"search_edge_size":{"type":"integer"}}},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"persistentVolume":{"type":"object","properties":{"accessMode":{"type":"string"},"enabled":{"type":"boolean"},"size":{"type":"string"},"storageClass":{"type":"string"}}},"podAnnotations":{"type":"object"},"podManagementPolicy":{"type":"string","enum":["OrderedReady","Parallel"]},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"},"partition":{"type":"integer"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"sidecar":{"type":"object","properties":{"config":{"type":"object","properties":{"auto_backup_duration":{"type":"string"},"auto_backup_enabled":{"type":"boolean"},"blob_storage":{"type":"object","properties":{"bucket":{"type":"string"},"s3":{"type":"object","properties":{"access_key":{"type":"string"},"enable_100_continue":{"type":"boolean"},"enable_content_md5_validation":{"type":"boolean"},"enable_endpoint_discovery":{"type":"boolean"},"enable_endpoint_host_prefix":{"type":"boolean"},"enable_param_validation":{"type":"boolean"},"enable_ssl":{"type":"boolean"},"endpoint":{"type":"string"},"force_path_style":{"type":"boolean"},"max_chunk_size":{"type":"string","pattern":"^[0-9]+(kb|mb|gb)$"},"max_part_size":{"type":"string","pattern":"^[0-9]+(kb|mb|gb)$"},"max_retries":{"type":"integer"},"region":{"type":"string"},"secret_access_key":{"type":"string"},"token":{"type":"string"},"use_accelerate":{"type":"boolean"},"use_arn_region":{"type":"boolean"},"use_dual_stack":{"type":"boolean"}}},"storage_type":{"type":"string","enum":["s3"]}}},"client":{"type":"object","properties":{"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"transport":{"type":"object","properties":{"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"round_tripper":{"type":"object","properties":{"expect_continue_timeout":{"type":"string"},"force_attempt_http_2":{"type":"boolean"},"idle_conn_timeout":{"type":"string"},"max_conns_per_host":{"type":"integer"},"max_idle_conns":{"type":"integer"},"max_idle_conns_per_host":{"type":"integer"},"max_response_header_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"response_header_timeout":{"type":"string"},"tls_handshake_timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer"}}},"filename":{"type":"string"},"filename_suffix":{"type":"string"},"post_stop_timeout":{"type":"string"},"restore_backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"watch_enabled":{"type":"boolean"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainerEnabled":{"type":"boolean"},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"name":{"type":"string"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"externalTrafficPolicy":{"type":"string"},"labels":{"type":"object"},"type":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]}}},"time_zone":{"type":"string"},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"}}},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"defaults":{"type":"object","properties":{"grpc":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"image":{"type":"object","properties":{"tag":{"type":"string"}}},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"time_zone":{"type":"string"}}},"discoverer":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"clusterRole":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string"}}},"clusterRoleBinding":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string"}}},"discoverer":{"type":"object","properties":{"discovery_duration":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceAccount":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"gateway":{"type":"object","properties":{"backup":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"backup_client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"gateway_client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"lb":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"agent_namespace":{"type":"string"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"index_replica":{"type":"integer","minimum":1},"node_namespace":{"type":"string"}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"meta":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"gateway_client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"meta":{"type":"object","properties":{"cache_expiration":{"type":"string"},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"enable_cache":{"type":"boolean"},"expired_cache_check_duration":{"type":"string"}}}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"vald":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"gateway_config":{"type":"object","properties":{"agent_namespace":{"type":"string"},"backup":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"index_replica":{"type":"integer","minimum":1},"meta":{"type":"object","properties":{"cache_expiration":{"type":"string"},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"enable_cache":{"type":"boolean"},"expired_cache_check_duration":{"type":"string"}}},"node_namespace":{"type":"string"}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object"},"enabled":{"type":"boolean"},"host":{"type":"string"},"pathType":{"type":"string"},"servicePort":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}}}},"manager":{"type":"object","properties":{"backup":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"cassandra":{"type":"object","properties":{"config":{"type":"object","properties":{"connect_timeout":{"type":"string"},"consistency":{"type":"string","enum":["any","one","two","three","all","quorum","localquorum","eachquorum","localone"]},"cql_version":{"type":"string"},"default_idempotence":{"type":"boolean"},"default_timestamp":{"type":"boolean"},"disable_initial_host_lookup":{"type":"boolean"},"disable_node_status_events":{"type":"boolean"},"disable_skip_metadata":{"type":"boolean"},"disable_topology_events":{"type":"boolean"},"enable_host_verification":{"type":"boolean"},"host_filter":{"type":"object","properties":{"data_center":{"type":"string"},"enabled":{"type":"boolean"},"white_list":{"type":"array","items":{"type":"string"}}}},"hosts":{"type":"array","items":{"type":"string"}},"ignore_peer_addr":{"type":"boolean"},"keyspace":{"type":"string"},"max_prepared_stmts":{"type":"integer"},"max_routing_key_info":{"type":"integer"},"max_wait_schema_agreement":{"type":"string"},"num_conns":{"type":"integer"},"page_size":{"type":"integer"},"password":{"type":"string"},"pool_config":{"type":"object","properties":{"data_center":{"type":"string"},"dc_aware_routing":{"type":"boolean"},"non_local_replicas_fallback":{"type":"boolean"},"shuffle_replicas":{"type":"boolean"},"token_aware_host_policy":{"type":"boolean"}}},"port":{"type":"integer"},"proto_version":{"type":"integer"},"reconnect_interval":{"type":"string"},"reconnection_policy":{"type":"object","properties":{"initial_interval":{"type":"string"},"max_retries":{"type":"integer"}}},"retry_policy":{"type":"object","properties":{"max_duration":{"type":"string"},"min_duration":{"type":"string"},"num_retries":{"type":"integer"}}},"serial_consistency":{"type":"string","enum":["localserial","serial"]},"socket_keepalive":{"type":"string"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"username":{"type":"string"},"vector_backup_table":{"type":"string"},"write_coalesce_wait_time":{"type":"string"}}},"enabled":{"type":"boolean"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"mysql":{"type":"object","properties":{"config":{"type":"object","properties":{"conn_max_life_time":{"type":"string"},"db":{"type":"string","enum":["mysql","postgres","sqlite3"]},"host":{"type":"string"},"max_idle_conns":{"type":"integer"},"max_open_conns":{"type":"integer"},"name":{"type":"string"},"pass":{"type":"string"},"port":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"user":{"type":"string"}}},"enabled":{"type":"boolean"}}},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"compressor":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"backup":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer"},"concurrent_limit":{"type":"integer"},"queue_check_duration":{"type":"string"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"registerer":{"type":"object","properties":{"compressor":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}}}},"concurrent_limit":{"type":"integer"},"queue_check_duration":{"type":"string"}}},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}},"index":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"indexer":{"type":"object","properties":{"agent_namespace":{"type":"string"},"auto_index_check_duration":{"type":"string"},"auto_index_duration_limit":{"type":"string"},"auto_index_length":{"type":"integer"},"concurrency":{"type":"integer","minimum":1},"creation_pool_size":{"type":"integer"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number"},"backoff_time_limit":{"type":"string"},"enable_error_log":{"type":"boolean"},"initial_duration":{"type":"string"},"jitter_limit":{"type":"string"},"maximum_duration":{"type":"string"},"retry_count":{"type":"integer"}}},"call_option":{"type":"object"},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean"},"enable_rebalance":{"type":"boolean"},"old_conn_close_duration":{"type":"string"},"rebalance_duration":{"type":"string"},"size":{"type":"integer"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string"},"backoff_jitter":{"type":"number"},"backoff_max_delay":{"type":"string"},"backoff_multiplier":{"type":"number"},"enable_backoff":{"type":"boolean"},"initial_connection_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"insecure":{"type":"boolean"},"keep_alive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_msg_size":{"type":"integer"},"min_connection_timeout":{"type":"string"},"read_buffer_size":{"type":"integer"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"write_buffer_size":{"type":"integer"}}},"health_check_duration":{"type":"string"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"node_name":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxUnavailable":{"type":"string"},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"replicas":{"type":"integer","minimum":0},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}}}},"mangaer":{"type":"object"},"meta":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","items":{"type":"object"}}}}}},"annotations":{"type":"object"},"cassandra":{"type":"object","properties":{"config":{"type":"object","properties":{"connect_timeout":{"type":"string"},"consistency":{"type":"string","enum":["any","one","two","three","all","quorum","localquorum","eachquorum","localone"]},"cql_version":{"type":"string"},"default_idempotence":{"type":"boolean"},"default_timestamp":{"type":"boolean"},"disable_initial_host_lookup":{"type":"boolean"},"disable_node_status_events":{"type":"boolean"},"disable_skip_metadata":{"type":"boolean"},"disable_topology_events":{"type":"boolean"},"enable_host_verification":{"type":"boolean"},"host_filter":{"type":"object","properties":{"data_center":{"type":"string"},"enabled":{"type":"boolean"},"white_list":{"type":"array","items":{"type":"string"}}}},"hosts":{"type":"array","items":{"type":"string"}},"ignore_peer_addr":{"type":"boolean"},"keyspace":{"type":"string"},"max_prepared_stmts":{"type":"integer"},"max_routing_key_info":{"type":"integer"},"max_wait_schema_agreement":{"type":"string"},"num_conns":{"type":"integer"},"page_size":{"type":"integer"},"password":{"type":"string"},"pool_config":{"type":"object","properties":{"data_center":{"type":"string"},"dc_aware_routing":{"type":"boolean"},"non_local_replicas_fallback":{"type":"boolean"},"shuffle_replicas":{"type":"boolean"},"token_aware_host_policy":{"type":"boolean"}}},"port":{"type":"integer"},"proto_version":{"type":"integer"},"reconnect_interval":{"type":"string"},"reconnection_policy":{"type":"object","properties":{"initial_interval":{"type":"string"},"max_retries":{"type":"integer"}}},"retry_policy":{"type":"object","properties":{"max_duration":{"type":"string"},"min_duration":{"type":"string"},"num_retries":{"type":"integer"}}},"serial_consistency":{"type":"string","enum":["localserial","serial"]},"socket_keepalive":{"type":"string"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"timeout":{"type":"string"},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"username":{"type":"string"},"vector_backup_table":{"type":"string"},"write_coalesce_wait_time":{"type":"string"}}},"enabled":{"type":"boolean"}}},"enabled":{"type":"boolean"},"env":{"type":"array","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean"},"targetCPUUtilizationPercentage":{"type":"integer"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string"},"tag":{"type":"string"}}},"initContainers":{"type":"array","items":{"type":"object"}},"kind":{"type":"string","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","enum":["raw","json"]},"level":{"type":"string","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","minimum":0},"maxUnavailable":{"type":"string"},"minReplicas":{"type":"integer","minimum":0},"name":{"type":"string"},"nodeName":{"type":"string"},"nodeSelector":{"type":"object"},"observability":{"type":"object","properties":{"collector":{"type":"object","properties":{"duration":{"type":"string"},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean"},"enable_goroutine":{"type":"boolean"},"enable_memory":{"type":"boolean"},"enable_version_info":{"type":"boolean"},"version_info_labels":{"type":"array","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}}}},"enabled":{"type":"boolean"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string"},"buffer_max_count":{"type":"integer"},"collector_endpoint":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"service_name":{"type":"string"},"username":{"type":"string"}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"namespace":{"type":"string"}}},"stackdriver":{"type":"object","properties":{"client":{"type":"object","properties":{"api_key":{"type":"string"},"audiences":{"type":"array","items":{"type":"string"}},"authentication_enabled":{"type":"boolean"},"credentials_file":{"type":"string"},"credentials_json":{"type":"string"},"endpoint":{"type":"string"},"quota_project":{"type":"string"},"request_reason":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"telemetry_enabled":{"type":"boolean"},"user_agent":{"type":"string"}}},"exporter":{"type":"object","properties":{"bundle_count_threshold":{"type":"integer"},"bundle_delay_threshold":{"type":"string"},"location":{"type":"string"},"metric_prefix":{"type":"string"},"monitoring_enabled":{"type":"boolean"},"number_of_workers":{"type":"integer"},"reporting_interval":{"type":"string"},"skip_cmd":{"type":"boolean"},"timeout":{"type":"string"},"trace_spans_buffer_max_bytes":{"type":"integer"},"tracing_enabled":{"type":"boolean"}}},"profiler":{"type":"object","properties":{"alloc_force_gc":{"type":"boolean"},"alloc_profiling":{"type":"boolean"},"api_addr":{"type":"string"},"cpu_profiling":{"type":"boolean"},"debug_logging":{"type":"boolean"},"enabled":{"type":"boolean"},"goroutine_profiling":{"type":"boolean"},"heap_profiling":{"type":"boolean"},"instance":{"type":"string"},"mutex_profiling":{"type":"boolean"},"service":{"type":"string"},"service_version":{"type":"string"},"zone":{"type":"string"}}},"project_id":{"type":"string"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean"},"sampling_rate":{"type":"number"}}}}},"podAnnotations":{"type":"object"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean"},"value":{"type":"integer"}}},"progressDeadlineSeconds":{"type":"integer"},"redis":{"type":"object","properties":{"config":{"type":"object","properties":{"addrs":{"type":"array","items":{"type":"string"}},"db":{"type":"integer"},"dial_timeout":{"type":"string"},"idle_check_frequency":{"type":"string"},"idle_timeout":{"type":"string"},"key_pref":{"type":"string"},"kv_prefix":{"type":"string"},"max_conn_age":{"type":"string"},"max_redirects":{"type":"integer"},"max_retries":{"type":"integer"},"max_retry_backoff":{"type":"string"},"min_idle_conns":{"type":"integer"},"min_retry_backoff":{"type":"string"},"network":{"type":"string"},"password":{"type":"string"},"pool_size":{"type":"integer"},"pool_timeout":{"type":"string"},"prefix_delimiter":{"type":"string"},"read_only":{"type":"boolean"},"read_timeout":{"type":"string"},"route_by_latency":{"type":"boolean"},"route_randomly":{"type":"boolean"},"sentinel_master_name":{"type":"string"},"sentinel_password":{"type":"string"},"tcp":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean"},"keep_alive":{"type":"string"},"timeout":{"type":"string"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean"},"cache_expiration":{"type":"string"},"refresh_duration":{"type":"string"}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}},"vk_prefix":{"type":"string"},"write_timeout":{"type":"string"}}},"enabled":{"type":"boolean"}}},"resources":{"type":"object","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string"},"maxUnavailable":{"type":"string"}}},"securityContext":{"type":"object"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timetoutSeconds":{"type":"integer"}}},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer"},"httpGet":{"type":"object","properties":{"path":{"type":"string"},"port":{"type":"string"},"scheme":{"type":"string"}}},"initialDelaySeconds":{"type":"integer"},"periodSeconds":{"type":"integer"},"successThreshold":{"type":"integer"},"timeoutSeconds":{"type":"integer"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string"},"idle_timeout":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer"},"connection_timeout":{"type":"string"},"header_table_size":{"type":"integer"},"initial_conn_window_size":{"type":"integer"},"initial_window_size":{"type":"integer"},"interceptors":{"type":"array","items":{"type":"string","enum":["AccessLogInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string"},"max_conn_age_grace":{"type":"string"},"max_conn_idle":{"type":"string"},"time":{"type":"string"},"timeout":{"type":"string"}}},"max_header_list_size":{"type":"integer"},"max_receive_message_size":{"type":"integer"},"max_send_message_size":{"type":"integer"},"read_buffer_size":{"type":"integer"},"write_buffer_size":{"type":"integer"}}},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"restart":{"type":"boolean"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean"},"host":{"type":"string"},"port":{"type":"integer","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"handler_timeout":{"type":"string"},"http":{"type":"object"},"idle_timeout":{"type":"string"},"mode":{"type":"string"},"probe_wait_time":{"type":"string"},"read_header_timeout":{"type":"string"},"read_timeout":{"type":"string"},"shutdown_duration":{"type":"string"},"write_timeout":{"type":"string"}}},"servicePort":{"type":"integer","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string"},"cert":{"type":"string"},"enabled":{"type":"boolean"},"key":{"type":"string"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object"},"labels":{"type":"object"}}},"serviceType":{"type":"string","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","minimum":0},"time_zone":{"type":"string"},"tolerations":{"type":"array","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","items":{"type":"object"}},"version":{"type":"string","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","items":{"type":"object"}},"volumes":{"type":"array","items":{"type":"object"}}}}}} diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index b834981b2b..a3371eb816 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -22,9 +22,9 @@ defaults: time_zone: UTC # @schema {"name": "defaults.logging", "type": "object", "anchor": "logging"} logging: - # @schema {"name": "defaults.logging.logger", "type": "string", "enum": ["glg"]} + # @schema {"name": "defaults.logging.logger", "type": "string", "enum": ["glg", "zap"]} # defaults.logging.logger -- logger name. - # currently logger must be `glg`. + # currently logger must be `glg` or `zap`. logger: glg # @schema {"name": "defaults.logging.level", "type": "string", "enum": ["debug", "info", "warn", "error", "fatal"]} # defaults.logging.level -- logging level. @@ -156,7 +156,7 @@ defaults: # @schema {"name": "defaults.server_config.servers.grpc.server.grpc.header_table_size", "type": "integer"} # defaults.server_config.servers.grpc.server.grpc.header_table_size -- gRPC server header table size header_table_size: 0 - # @schema {"name": "defaults.server_config.servers.grpc.server.grpc.interceptors", "type": "array"} + # @schema {"name": "defaults.server_config.servers.grpc.server.grpc.interceptors", "type": "array", "items": {"type": "string", "enum": ["AccessLogInterceptor"]}} # defaults.server_config.servers.grpc.server.grpc.interceptors -- gRPC server interceptors interceptors: [] # @schema {"name": "defaults.server_config.servers.grpc.server.restart", "type": "boolean"} diff --git a/go.mod b/go.mod index d57d1f69e0..0689a660b5 100755 --- a/go.mod +++ b/go.mod @@ -72,6 +72,7 @@ require ( go.opencensus.io v0.22.5 go.uber.org/automaxprocs v1.3.0 go.uber.org/goleak v1.1.10 + go.uber.org/zap v1.14.0 golang.org/x/net v0.0.0-20210119194325-5f4716e94777 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 diff --git a/internal/log/format/format.go b/internal/log/format/format.go index 5a1319106b..bbde7c2363 100644 --- a/internal/log/format/format.go +++ b/internal/log/format/format.go @@ -24,7 +24,7 @@ const ( Unknown Format = iota RAW JSON - LTSV + // LTSV ) func (f Format) String() string { @@ -33,8 +33,8 @@ func (f Format) String() string { return "raw" case JSON: return "json" - case LTSV: - return "ltsv" + // case LTSV: + // return "ltsv" } return "unknown" } @@ -45,8 +45,8 @@ func Atof(str string) Format { return RAW case "json": return JSON - case "ltsv": - return LTSV + // case "ltsv": + // return LTSV } return Unknown } diff --git a/internal/log/format/format_test.go b/internal/log/format/format_test.go index acf5971037..b3969694fc 100644 --- a/internal/log/format/format_test.go +++ b/internal/log/format/format_test.go @@ -58,13 +58,13 @@ func TestFormat_String(t *testing.T) { }, }, - { - name: "returns ltsv when f is LTSV", - f: LTSV, - want: want{ - want: "ltsv", - }, - }, + // { + // name: "returns ltsv when f is LTSV", + // f: LTSV, + // want: want{ + // want: "ltsv", + // }, + // }, { name: "returns unknown when f is 100", @@ -148,21 +148,21 @@ func TestAtof(t *testing.T) { }, }, - { - name: "returns LTSV when str is `ltsv`", - str: "ltsv", - want: want{ - want: LTSV, - }, - }, - - { - name: "returns LTSV when str is `LTSv`", - str: "LTSv", - want: want{ - want: LTSV, - }, - }, + // { + // name: "returns LTSV when str is `ltsv`", + // str: "ltsv", + // want: want{ + // want: LTSV, + // }, + // }, + // + // { + // name: "returns LTSV when str is `LTSv`", + // str: "LTSv", + // want: want{ + // want: LTSV, + // }, + // }, { name: "returns Unknown when str is `Vald`", diff --git a/internal/log/log.go b/internal/log/log.go index 0a1186787b..487f1a2988 100644 --- a/internal/log/log.go +++ b/internal/log/log.go @@ -21,6 +21,7 @@ import ( "github.com/vdaas/vald/internal/log/glg" logger "github.com/vdaas/vald/internal/log/logger" + "github.com/vdaas/vald/internal/log/zap" ) var ( @@ -40,6 +41,17 @@ func Init(opts ...Option) { func getLogger(o *option) logger.Logger { switch o.logType { + case logger.ZAP: + z, err := zap.New( + zap.WithLevel(o.level.String()), + zap.WithFormat(o.format.String()), + ) + if err == nil { + return z + } + + // fallback + fallthrough case logger.GLG: fallthrough default: diff --git a/internal/log/log_test.go b/internal/log/log_test.go index 908606bd24..1049ff9e8a 100644 --- a/internal/log/log_test.go +++ b/internal/log/log_test.go @@ -133,6 +133,24 @@ func Test_getLogger(t *testing.T) { return nil } tests := []test{ + func() test { + return test{ + name: "returns zap object when *option.logType is ZAP", + args: args{ + o: &option{ + logType: logger.ZAP, + }, + }, + checkFunc: func(w want, got Logger) error { + if got == nil { + return errors.New("got object is empty") + } + + return nil + }, + } + }(), + { name: "returns glg object when *option.logType is GLG", args: args{ diff --git a/internal/log/logger/type.go b/internal/log/logger/type.go index 70c245b7c4..e1b059f6ba 100644 --- a/internal/log/logger/type.go +++ b/internal/log/logger/type.go @@ -24,9 +24,9 @@ const ( Unknown Type = iota GLG ZAP - ZEROLOG - LOGRUS - KLOG + // ZEROLOG + // LOGRUS + // KLOG ) func (m Type) String() string { @@ -35,12 +35,12 @@ func (m Type) String() string { return "glg" case ZAP: return "zap" - case ZEROLOG: - return "zerolog" - case LOGRUS: - return "logrus" - case KLOG: - return "klog" + // case ZEROLOG: + // return "zerolog" + // case LOGRUS: + // return "logrus" + // case KLOG: + // return "klog" } return "unknown" } @@ -51,12 +51,12 @@ func Atot(str string) Type { return GLG case "zap": return ZAP - case "zerolog": - return ZEROLOG - case "logrus": - return LOGRUS - case "klog": - return KLOG + // case "zerolog": + // return ZEROLOG + // case "logrus": + // return LOGRUS + // case "klog": + // return KLOG } return Unknown } diff --git a/internal/log/logger/type_test.go b/internal/log/logger/type_test.go index ed50bb5562..3066eff3d0 100644 --- a/internal/log/logger/type_test.go +++ b/internal/log/logger/type_test.go @@ -59,29 +59,29 @@ func TestType_String(t *testing.T) { }, }, - { - name: "returns zerolog when m is ZEROLOG", - m: ZEROLOG, - want: want{ - want: "zerolog", - }, - }, - - { - name: "returns logrus when m is LOGRUS", - m: LOGRUS, - want: want{ - want: "logrus", - }, - }, - - { - name: "returns klog when m is KLOG", - m: KLOG, - want: want{ - want: "klog", - }, - }, + // { + // name: "returns zerolog when m is ZEROLOG", + // m: ZEROLOG, + // want: want{ + // want: "zerolog", + // }, + // }, + // + // { + // name: "returns logrus when m is LOGRUS", + // m: LOGRUS, + // want: want{ + // want: "logrus", + // }, + // }, + // + // { + // name: "returns klog when m is KLOG", + // m: KLOG, + // want: want{ + // want: "klog", + // }, + // }, { name: "returns unknown when m is unknown", @@ -175,65 +175,65 @@ func TestAtot(t *testing.T) { }, }, - { - name: "returns ZEROLOG when str is `zerolog`", - args: args{ - str: "zerolog", - }, - want: want{ - want: ZEROLOG, - }, - }, - - { - name: "returns ZEROLOG when str is `ZEROLOg`", - args: args{ - str: "ZEROLOg", - }, - want: want{ - want: ZEROLOG, - }, - }, - - { - name: "returns LOGRUS when str is `logrus`", - args: args{ - str: "logrus", - }, - want: want{ - want: LOGRUS, - }, - }, - - { - name: "returns LOGRUS when str is `LOGRUs`", - args: args{ - str: "LOGRUs", - }, - want: want{ - want: LOGRUS, - }, - }, - - { - name: "returns KLOG when str is `klog`", - args: args{ - str: "klog", - }, - want: want{ - want: KLOG, - }, - }, - - { - name: "returns KLOG when str is `KLOg`", - args: args{ - str: "KLog", - }, - want: want{ - want: KLOG, - }, - }, + // { + // name: "returns ZEROLOG when str is `zerolog`", + // args: args{ + // str: "zerolog", + // }, + // want: want{ + // want: ZEROLOG, + // }, + // }, + // + // { + // name: "returns ZEROLOG when str is `ZEROLOg`", + // args: args{ + // str: "ZEROLOg", + // }, + // want: want{ + // want: ZEROLOG, + // }, + // }, + // + // { + // name: "returns LOGRUS when str is `logrus`", + // args: args{ + // str: "logrus", + // }, + // want: want{ + // want: LOGRUS, + // }, + // }, + // + // { + // name: "returns LOGRUS when str is `LOGRUs`", + // args: args{ + // str: "LOGRUs", + // }, + // want: want{ + // want: LOGRUS, + // }, + // }, + // + // { + // name: "returns KLOG when str is `klog`", + // args: args{ + // str: "klog", + // }, + // want: want{ + // want: KLOG, + // }, + // }, + // + // { + // name: "returns KLOG when str is `KLOg`", + // args: args{ + // str: "KLog", + // }, + // want: want{ + // want: KLOG, + // }, + // }, { name: "returns unknown when str is `Vald`", diff --git a/internal/log/zap/option.go b/internal/log/zap/option.go new file mode 100644 index 0000000000..14e7de5e9d --- /dev/null +++ b/internal/log/zap/option.go @@ -0,0 +1,56 @@ +// +// Copyright (C) 2019-2021 vdaas.org vald team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +package zap + +import ( + "github.com/vdaas/vald/internal/log/format" + "github.com/vdaas/vald/internal/log/level" +) + +type Option func(l *logger) + +var ( + defaultOpts = []Option{ + WithLevel(level.DEBUG.String()), + WithFormat(format.JSON.String()), + } +) + +func WithLevel(lv string) Option { + return func(l *logger) { + if lv == "" { + return + } + + l.level = level.Atol(lv) + } +} + +func WithFormat(fmt string) Option { + return func(l *logger) { + if fmt == "" { + return + } + + l.format = format.Atof(fmt) + } +} + +func WithCaller(enable bool) Option { + return func(l *logger) { + l.enableCaller = enable + } +} diff --git a/internal/log/zap/option_test.go b/internal/log/zap/option_test.go new file mode 100644 index 0000000000..bb61c73950 --- /dev/null +++ b/internal/log/zap/option_test.go @@ -0,0 +1,226 @@ +// +// Copyright (C) 2019-2021 vdaas.org vald team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +package zap + +import ( + "reflect" + "testing" + + "github.com/vdaas/vald/internal/errors" + "github.com/vdaas/vald/internal/log/format" + "github.com/vdaas/vald/internal/log/level" + "go.uber.org/goleak" +) + +func TestWithLevel(t *testing.T) { + type T = logger + type args struct { + lv string + } + type want struct { + obj *T + } + type test struct { + name string + args args + want want + checkFunc func(want, *T) error + beforeFunc func(args) + afterFunc func(args) + } + + defaultCheckFunc := func(w want, obj *T) error { + if !reflect.DeepEqual(obj, w.obj) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) + } + return nil + } + + tests := []test{ + { + name: "do nothing if lv is empty string", + args: args{ + lv: "", + }, + want: want{ + obj: new(T), + }, + }, + { + name: "if lv is debug, DEBUG level will be set", + args: args{ + lv: "debug", + }, + want: want{ + obj: &T{ + level: level.DEBUG, + }, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + got := WithLevel(test.args.lv) + obj := new(T) + got(obj) + if err := test.checkFunc(test.want, obj); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func TestWithFormat(t *testing.T) { + type T = logger + type args struct { + fmt string + } + type want struct { + obj *T + } + type test struct { + name string + args args + want want + checkFunc func(want, *T) error + beforeFunc func(args) + afterFunc func(args) + } + + defaultCheckFunc := func(w want, obj *T) error { + if !reflect.DeepEqual(obj, w.obj) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) + } + return nil + } + + tests := []test{ + { + name: "do nothing if fmt is empty string", + args: args{ + fmt: "", + }, + want: want{ + obj: new(T), + }, + }, + { + name: "if fmt is json, JSON format will be set", + args: args{ + fmt: "json", + }, + want: want{ + obj: &T{ + format: format.JSON, + }, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + got := WithFormat(test.args.fmt) + obj := new(T) + got(obj) + if err := test.checkFunc(test.want, obj); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func TestWithCaller(t *testing.T) { + type T = logger + type args struct { + enable bool + } + type want struct { + obj *T + } + type test struct { + name string + args args + want want + checkFunc func(want, *T) error + beforeFunc func(args) + afterFunc func(args) + } + + defaultCheckFunc := func(w want, obj *T) error { + if !reflect.DeepEqual(obj, w.obj) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) + } + return nil + } + + tests := []test{ + { + name: "given value will be set to enableCaller field", + args: args{ + enable: true, + }, + want: want{ + obj: &T{ + enableCaller: true, + }, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + got := WithCaller(test.args.enable) + obj := new(T) + got(obj) + if err := test.checkFunc(test.want, obj); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/log/zap/zap.go b/internal/log/zap/zap.go new file mode 100644 index 0000000000..e4d6960891 --- /dev/null +++ b/internal/log/zap/zap.go @@ -0,0 +1,189 @@ +// +// Copyright (C) 2019-2021 vdaas.org vald team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +package zap + +import ( + "github.com/vdaas/vald/internal/log/format" + "github.com/vdaas/vald/internal/log/level" + + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +) + +const ( + detailsKey = "details" + + defaultLevel = zapcore.DebugLevel +) + +var ( + zapcore_NewConsoleEncoder = zapcore.NewConsoleEncoder + zapcore_NewJSONEncoder = zapcore.NewJSONEncoder +) + +type logger struct { + format format.Format + level level.Level + + enableCaller bool + + logger *zap.Logger + sugar *zap.SugaredLogger +} + +// New returns a new logger instance. +func New(opts ...Option) (*logger, error) { + l := new(logger) + for _, opt := range append(defaultOpts, opts...) { + opt(l) + } + + err := l.initialize("stdout", "stderr") + if err != nil { + return nil, err + } + + return l, nil +} + +func (l *logger) initialize(sinkPath, errSinkPath string) (err error) { + sink, closeOut, err := zap.Open(sinkPath) + if err != nil { + return err + } + + errSink, _, err := zap.Open(errSinkPath) + if err != nil { + closeOut() + return err + } + + core := zapcore.NewCore( + toZapEncoder(l.format), + sink, + toZapLevel(l.level), + ) + + opts := []zap.Option{ + zap.ErrorOutput(errSink), + } + + if l.enableCaller { + opts = append(opts, zap.AddCaller()) + } + + l.logger = zap.New(core, opts...) + + l.sugar = l.logger.Sugar() + + return nil +} + +func toZapLevel(lv level.Level) zapcore.Level { + switch lv { + case level.DEBUG: + return zapcore.DebugLevel + case level.INFO: + return zapcore.InfoLevel + case level.WARN: + return zapcore.WarnLevel + case level.ERROR: + return zapcore.ErrorLevel + case level.FATAL: + return zapcore.FatalLevel + case level.Unknown: + fallthrough + default: + return defaultLevel + } +} + +func toZapEncoder(fmt format.Format) zapcore.Encoder { + cfg := zap.NewProductionEncoderConfig() + + switch fmt { + case format.RAW: + return zapcore_NewConsoleEncoder(cfg) + case format.JSON: + return zapcore_NewJSONEncoder(cfg) + case format.Unknown: + fallthrough + default: + return zapcore_NewJSONEncoder(cfg) + } +} + +func (l *logger) log( + loggerFunc func(msg string, fields ...zapcore.Field), + sugarFunc func(args ...interface{}), + vals ...interface{}, +) { + if len(vals) > 1 { + if msg, ok := vals[0].(string); ok { + if len(vals[1:]) == 1 { + loggerFunc(msg, zap.Any(detailsKey, vals[1])) + + return + } + + loggerFunc(msg, zap.Any(detailsKey, vals[1:])) + + return + } + } + + sugarFunc(vals...) +} + +func (l *logger) Debug(vals ...interface{}) { + l.log(l.logger.Debug, l.sugar.Debug, vals...) +} + +func (l *logger) Debugf(format string, vals ...interface{}) { + l.sugar.Debugf(format, vals...) +} + +func (l *logger) Info(vals ...interface{}) { + l.log(l.logger.Info, l.sugar.Info, vals...) +} + +func (l *logger) Infof(format string, vals ...interface{}) { + l.sugar.Infof(format, vals...) +} + +func (l *logger) Warn(vals ...interface{}) { + l.log(l.logger.Warn, l.sugar.Warn, vals...) +} + +func (l *logger) Warnf(format string, vals ...interface{}) { + l.sugar.Warnf(format, vals...) +} + +func (l *logger) Error(vals ...interface{}) { + l.log(l.logger.Error, l.sugar.Error, vals...) +} + +func (l *logger) Errorf(format string, vals ...interface{}) { + l.sugar.Errorf(format, vals...) +} + +func (l *logger) Fatal(vals ...interface{}) { + l.log(l.logger.Fatal, l.sugar.Fatal, vals...) +} + +func (l *logger) Fatalf(format string, vals ...interface{}) { + l.sugar.Fatalf(format, vals...) +} diff --git a/internal/log/zap/zap_test.go b/internal/log/zap/zap_test.go new file mode 100644 index 0000000000..3f611d8a75 --- /dev/null +++ b/internal/log/zap/zap_test.go @@ -0,0 +1,1343 @@ +// +// Copyright (C) 2019-2021 vdaas.org vald team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +package zap + +import ( + "reflect" + "testing" + + "github.com/vdaas/vald/internal/errors" + "github.com/vdaas/vald/internal/log/format" + "github.com/vdaas/vald/internal/log/level" + "go.uber.org/goleak" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +) + +func TestNew(t *testing.T) { + type args struct { + opts []Option + } + type want struct { + want *logger + err error + } + type test struct { + name string + args args + want want + checkFunc func(want, *logger, error) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want, got *logger, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + func() test { + called := false + + return test{ + name: "return new logger instance correctly", + args: args{ + opts: []Option{ + func(l *logger) { + called = true + }, + }, + }, + want: want{ + want: &logger{}, + err: nil, + }, + checkFunc: func(w want, got *logger, err error) error { + if !called { + return errors.New("Option function is not applied") + } + + if got == nil { + return errors.New("logger is not returned") + } + + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + + return nil + }, + } + }(), + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + + got, err := New(test.args.opts...) + if err := test.checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + + }) + } +} + +func Test_logger_initialize(t *testing.T) { + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type args struct { + sinkPath string + errSinkPath string + } + type want struct { + err error + } + type test struct { + name string + fields fields + args args + want want + checkFunc func(want, *logger, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, l *logger, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + return nil + } + tests := []test{ + func() test { + _, _, err := zap.Open("") + + return test{ + name: "returns error when sinkPath is invalid", + fields: fields{ + format: format.RAW, + level: level.DEBUG, + }, + args: args{ + sinkPath: "", + errSinkPath: "stderr", + }, + want: want{ + err: err, + }, + checkFunc: func(w want, l *logger, err error) error { + if l.logger != nil { + return errors.New("l.logger is not empty") + } + + if l.sugar != nil { + return errors.New("l.sugar is not empty") + } + + return defaultCheckFunc(w, l, err) + }, + } + }(), + func() test { + _, _, err := zap.Open("xxx:///") + + return test{ + name: "returns error when errSinkPath is invalid", + fields: fields{ + format: format.RAW, + level: level.DEBUG, + }, + args: args{ + sinkPath: "stdout", + errSinkPath: "xxx:///", + }, + want: want{ + err: err, + }, + checkFunc: func(w want, l *logger, err error) error { + if l.logger != nil { + return errors.New("l.logger is not empty") + } + + if l.sugar != nil { + return errors.New("l.sugar is not empty") + } + + return defaultCheckFunc(w, l, err) + }, + } + }(), + { + name: "returns nil and initialize the logger and sugar fields correctly", + fields: fields{ + format: format.RAW, + level: level.DEBUG, + }, + args: args{ + sinkPath: "stdout", + errSinkPath: "stderr", + }, + want: want{ + err: nil, + }, + checkFunc: func(w want, l *logger, err error) error { + if l.logger == nil { + return errors.New("l.logger is nil") + } + + if l.sugar == nil { + return errors.New("l.sugar is nil") + } + + return defaultCheckFunc(w, l, err) + }, + }, + { + name: "returns nil and initialize the logger and sugar fields correctly (with enableCaller)", + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: true, + }, + args: args{ + sinkPath: "stdout", + errSinkPath: "stderr", + }, + want: want{ + err: nil, + }, + checkFunc: func(w want, l *logger, err error) error { + if l.logger == nil { + return errors.New("l.logger is nil") + } + + if l.sugar == nil { + return errors.New("l.sugar is nil") + } + + return defaultCheckFunc(w, l, err) + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + err := l.initialize(test.args.sinkPath, test.args.errSinkPath) + if err := test.checkFunc(test.want, l, err); err != nil { + tt.Errorf("error = %v", err) + } + + }) + } +} + +func Test_toZapLevel(t *testing.T) { + type args struct { + lv level.Level + } + type want struct { + want zapcore.Level + } + type test struct { + name string + args args + want want + checkFunc func(want, zapcore.Level) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want, got zapcore.Level) error { + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + { + name: "returns DebugLevel if lv is DEBUG", + args: args{ + lv: level.DEBUG, + }, + want: want{ + want: zapcore.DebugLevel, + }, + }, + { + name: "returns InfoLevel if lv is INFO", + args: args{ + lv: level.INFO, + }, + want: want{ + want: zapcore.InfoLevel, + }, + }, + { + name: "returns WarnLevel if lv is WARN", + args: args{ + lv: level.WARN, + }, + want: want{ + want: zapcore.WarnLevel, + }, + }, + { + name: "returns ErrorLevel if lv is Error", + args: args{ + lv: level.ERROR, + }, + want: want{ + want: zapcore.ErrorLevel, + }, + }, + { + name: "returns FatalLevel if lv is FATAL", + args: args{ + lv: level.FATAL, + }, + want: want{ + want: zapcore.FatalLevel, + }, + }, + { + name: "returns defaultLevel if lv is Unknown", + args: args{ + lv: level.Unknown, + }, + want: want{ + want: defaultLevel, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + + got := toZapLevel(test.args.lv) + if err := test.checkFunc(test.want, got); err != nil { + tt.Errorf("error = %v", err) + } + + }) + } +} + +func Test_toZapEncoder(t *testing.T) { + type args struct { + fmt format.Format + } + type want struct { + want zapcore.Encoder + } + type test struct { + name string + args args + want want + checkFunc func(want, zapcore.Encoder) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want, got zapcore.Encoder) error { + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + consoleEnc := zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig()) + zapcore_NewConsoleEncoder = func(_ zapcore.EncoderConfig) zapcore.Encoder { + return consoleEnc + } + + jsonEnc := zapcore.NewJSONEncoder(zap.NewDevelopmentEncoderConfig()) + zapcore_NewJSONEncoder = func(_ zapcore.EncoderConfig) zapcore.Encoder { + return jsonEnc + } + + tests := []test{ + { + name: "returns ConsoleEncoder if fmt is RAW", + args: args{ + fmt: format.RAW, + }, + want: want{ + want: consoleEnc, + }, + }, + { + name: "returns JSONEncoder if fmt is JSON", + args: args{ + fmt: format.JSON, + }, + want: want{ + want: jsonEnc, + }, + }, + { + name: "returns JSONEncoder if fmt is Unknown", + args: args{ + fmt: format.Unknown, + }, + want: want{ + want: jsonEnc, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + + got := toZapEncoder(test.args.fmt) + if err := test.checkFunc(test.want, got); err != nil { + tt.Errorf("error = %v", err) + } + + }) + } +} + +func Test_logger_log(t *testing.T) { + type args struct { + loggerFunc func(msg string, fields ...zapcore.Field) + sugarFunc func(args ...interface{}) + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + func() test { + count := 0 + + return test{ + name: "call sugarFunc when the length of vals is 1", + args: args{ + loggerFunc: nil, + sugarFunc: func(args ...interface{}) { + count++ + }, + vals: []interface{}{"a"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + }, + want: want{}, + checkFunc: func(w want) error { + if count != 1 { + return errors.New("sugarFunc is not called") + } + return nil + }, + } + }(), + func() test { + count := 0 + + return test{ + name: "call sugarFunc when the length of vals is greater than 1 and the first argument is not string", + args: args{ + loggerFunc: nil, + sugarFunc: func(args ...interface{}) { + count++ + }, + vals: []interface{}{1, 2, 3}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + }, + want: want{}, + checkFunc: func(w want) error { + if count != 1 { + return errors.New("sugarFunc is not called") + } + return nil + }, + } + }(), + func() test { + count := 0 + + return test{ + name: "call loggerFunc when the length of vals is 2 and the first argument is string", + args: args{ + loggerFunc: func(msg string, fields ...zapcore.Field) { + count++ + }, + sugarFunc: nil, + vals: []interface{}{"a", "b"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + }, + want: want{}, + checkFunc: func(w want) error { + if count != 1 { + return errors.New("loggerFunc is not called") + } + return nil + }, + } + }(), + func() test { + count := 0 + + return test{ + name: "call loggerFunc when the length of vals is greater than 2 and the first argument is string", + args: args{ + loggerFunc: func(msg string, fields ...zapcore.Field) { + count++ + }, + sugarFunc: nil, + vals: []interface{}{"a", "b", "c"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + }, + want: want{}, + checkFunc: func(w want) error { + if count != 1 { + return errors.New("loggerFunc is not called") + } + return nil + }, + } + }(), + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.log(test.args.loggerFunc, test.args.sugarFunc, test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Debug(t *testing.T) { + type args struct { + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Debug", + args: args{ + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Debug(test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Debugf(t *testing.T) { + type args struct { + format string + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Debugf", + args: args{ + format: "%s", + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Debugf(test.args.format, test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Info(t *testing.T) { + type args struct { + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Info", + args: args{ + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Info(test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Infof(t *testing.T) { + type args struct { + format string + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Infof", + args: args{ + format: "%s", + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Infof(test.args.format, test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Warn(t *testing.T) { + type args struct { + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Warn", + args: args{ + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Warn(test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Warnf(t *testing.T) { + type args struct { + format string + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Warnf", + args: args{ + format: "%s", + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Warnf(test.args.format, test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Error(t *testing.T) { + type args struct { + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Error", + args: args{ + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Error(test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Errorf(t *testing.T) { + type args struct { + format string + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + { + name: "just call Errorf", + args: args{ + format: "%s", + vals: []interface{}{"value"}, + }, + fields: fields{ + format: format.RAW, + level: level.DEBUG, + enableCaller: false, + logger: zap.L(), + sugar: zap.L().Sugar(), + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Errorf(test.args.format, test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Fatal(t *testing.T) { + type args struct { + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + // { + // name: "just call Fatal", + // args: args{ + // vals: []interface{}{"value"}, + // }, + // fields: fields{ + // format: format.RAW, + // level: level.DEBUG, + // enableCaller: false, + // logger: zap.L(), + // sugar: zap.L().Sugar(), + // }, + // want: want{}, + // checkFunc: defaultCheckFunc, + // }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Fatal(test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_logger_Fatalf(t *testing.T) { + type args struct { + format string + vals []interface{} + } + type fields struct { + format format.Format + level level.Level + enableCaller bool + logger *zap.Logger + sugar *zap.SugaredLogger + } + type want struct { + } + type test struct { + name string + args args + fields fields + want want + checkFunc func(want) error + beforeFunc func(args) + afterFunc func(args) + } + defaultCheckFunc := func(w want) error { + return nil + } + tests := []test{ + // { + // name: "just call Fatalf", + // args: args{ + // format: "%s", + // vals: []interface{}{"value"}, + // }, + // fields: fields{ + // format: format.RAW, + // level: level.DEBUG, + // enableCaller: false, + // logger: zap.L(), + // sugar: zap.L().Sugar(), + // }, + // want: want{}, + // checkFunc: defaultCheckFunc, + // }, + } + + for _, test := range tests { + t.Run(test.name, func(tt *testing.T) { + defer goleak.VerifyNone(tt) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + if test.checkFunc == nil { + test.checkFunc = defaultCheckFunc + } + l := &logger{ + format: test.fields.format, + level: test.fields.level, + enableCaller: test.fields.enableCaller, + logger: test.fields.logger, + sugar: test.fields.sugar, + } + + l.Fatalf(test.args.format, test.args.vals...) + if err := test.checkFunc(test.want); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/net/grpc/interceptor/server/logging/accesslog.go b/internal/net/grpc/interceptor/server/logging/accesslog.go new file mode 100644 index 0000000000..83ea6e4328 --- /dev/null +++ b/internal/net/grpc/interceptor/server/logging/accesslog.go @@ -0,0 +1,150 @@ +// +// Copyright (C) 2019-2021 vdaas.org vald team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Package logging provides gRPC interceptors for access logging +package logging + +import ( + "context" + "path" + "time" + + "github.com/vdaas/vald/internal/log" + "github.com/vdaas/vald/internal/observability/trace" + "google.golang.org/grpc" +) + +const ( + grpcKindUnary = "unary" + grpcKindStream = "stream" +) + +type AccessLogEntity struct { + GRPC *AccessLogGRPCEntity `json:"grpc,omitempty" yaml:"grpc"` + StartTime float64 `json:"startTime,omitempty" yaml:"startTime"` + Latency float64 `json:"latency,omitempty" yaml:"latency"` + TraceID string `json:"traceID,omitempty" yaml:"traceID"` + Error error `json:"error,omitempty" yaml:"error"` +} + +type AccessLogGRPCEntity struct { + Kind string `json:"kind,omitempty" yaml:"kind"` + Service string `json:"service,omitempty" yaml:"service"` + Method string `json:"method,omitempty" yaml:"method"` +} + +func AccessLogInterceptor() grpc.UnaryServerInterceptor { + return func( + ctx context.Context, + req interface{}, + info *grpc.UnaryServerInfo, + handler grpc.UnaryHandler, + ) (resp interface{}, err error) { + var traceID string + + span := trace.FromContext(ctx) + if span != nil { + traceID = span.SpanContext().TraceID.String() + } + + start := time.Now() + + resp, err = handler(ctx, req) + + latency := float64(time.Since(start)) / float64(time.Second) + startTime := float64(start.UnixNano()) / float64(time.Second) + + service, method := parseMethod(info.FullMethod) + + entity := &AccessLogEntity{ + GRPC: &AccessLogGRPCEntity{ + Kind: grpcKindUnary, + Service: service, + Method: method, + }, + StartTime: startTime, + Latency: latency, + } + + if traceID != "" { + entity.TraceID = traceID + } + + if err != nil { + entity.Error = err + log.Error("rpc completed", entity) + } else { + log.Info("rpc completed", entity) + } + + return resp, err + } +} + +func AccessLogStreamInterceptor() grpc.StreamServerInterceptor { + return func( + srv interface{}, + ss grpc.ServerStream, + info *grpc.StreamServerInfo, + handler grpc.StreamHandler, + ) error { + var traceID string + + span := trace.FromContext(ss.Context()) + if span != nil { + traceID = span.SpanContext().TraceID.String() + } + + start := time.Now() + + err := handler(srv, ss) + + latency := float64(time.Since(start)) / float64(time.Second) + startTime := float64(start.UnixNano()) / float64(time.Second) + + service, method := parseMethod(info.FullMethod) + + entity := &AccessLogEntity{ + GRPC: &AccessLogGRPCEntity{ + Kind: grpcKindStream, + Service: service, + Method: method, + }, + StartTime: startTime, + Latency: latency, + } + + if traceID != "" { + entity.TraceID = traceID + } + + if err != nil { + entity.Error = err + log.Error("rpc completed", entity) + } else { + log.Info("rpc completed", entity) + } + + return err + } +} + +func parseMethod(fullMethod string) (service, method string) { + service = path.Dir(fullMethod)[1:] + method = path.Base(fullMethod) + + return service, method +} diff --git a/internal/observability/metrics/agent/core/ngt/ngt.go b/internal/observability/metrics/agent/core/ngt/ngt.go index 74be0ba64f..57b287a794 100644 --- a/internal/observability/metrics/agent/core/ngt/ngt.go +++ b/internal/observability/metrics/agent/core/ngt/ngt.go @@ -40,35 +40,35 @@ func New(n service.NGT) metrics.Metric { return &ngtMetrics{ ngt: n, indexCount: *metrics.Int64( - metrics.ValdOrg+"/ngt/index_count", - "NGT index count", + metrics.ValdOrg+"/agent/core/ngt/index_count", + "Agent NGT index count", metrics.UnitDimensionless), uncommittedIndexCount: *metrics.Int64( - metrics.ValdOrg+"/ngt/uncommitted_index_count", - "NGT uncommitted index count", + metrics.ValdOrg+"/agent/core/ngt/uncommitted_index_count", + "Agent NGT uncommitted index count", metrics.UnitDimensionless), insertVCacheCount: *metrics.Int64( - metrics.ValdOrg+"/ngt/insert_vcache_count", - "NGT insert vcache count", + metrics.ValdOrg+"/agent/core/ngt/insert_vcache_count", + "Agent NGT insert vcache count", metrics.UnitDimensionless), deleteVCacheCount: *metrics.Int64( - metrics.ValdOrg+"/ngt/delete_vcache_count", - "NGT delete vcache count", + metrics.ValdOrg+"/agent/core/ngt/delete_vcache_count", + "Agent NGT delete vcache count", metrics.UnitDimensionless), completedCreateIndexTotal: *metrics.Int64( - metrics.ValdOrg+"/ngt/completed_create_index_total", + metrics.ValdOrg+"/agent/core/ngt/completed_create_index_total", "the cumulative count of completed create index execution", metrics.UnitDimensionless), executedProactiveGCTotal: *metrics.Int64( - metrics.ValdOrg+"/ngt/executed_proactive_gc_total", + metrics.ValdOrg+"/agent/core/ngt/executed_proactive_gc_total", "the cumulative count of proactive GC execution", metrics.UnitDimensionless), isIndexing: *metrics.Int64( - metrics.ValdOrg+"/ngt/is_indexing", + metrics.ValdOrg+"/agent/core/ngt/is_indexing", "currently indexing or not", metrics.UnitDimensionless), isSaving: *metrics.Int64( - metrics.ValdOrg+"/ngt/is_saving", + metrics.ValdOrg+"/agent/core/ngt/is_saving", "currently saving or not", metrics.UnitDimensionless), } @@ -104,49 +104,49 @@ func (n *ngtMetrics) MeasurementWithTags(ctx context.Context) ([]metrics.Measure func (n *ngtMetrics) View() []*metrics.View { return []*metrics.View{ { - Name: "ngt_index_count", + Name: "agent_core_ngt_index_count", Description: n.indexCount.Description(), Measure: &n.indexCount, Aggregation: metrics.LastValue(), }, { - Name: "ngt_uncommitted_index_count", + Name: "agent_core_ngt_uncommitted_index_count", Description: n.uncommittedIndexCount.Description(), Measure: &n.uncommittedIndexCount, Aggregation: metrics.LastValue(), }, { - Name: "ngt_insert_vcache_count", + Name: "agent_core_ngt_insert_vcache_count", Description: n.insertVCacheCount.Description(), Measure: &n.insertVCacheCount, Aggregation: metrics.LastValue(), }, { - Name: "ngt_delete_vcache_count", + Name: "agent_core_ngt_delete_vcache_count", Description: n.deleteVCacheCount.Description(), Measure: &n.deleteVCacheCount, Aggregation: metrics.LastValue(), }, { - Name: "ngt_completed_create_index_total", + Name: "agent_core_ngt_completed_create_index_total", Description: n.completedCreateIndexTotal.Description(), Measure: &n.completedCreateIndexTotal, Aggregation: metrics.LastValue(), }, { - Name: "ngt_executed_proactive_gc_total", + Name: "agent_core_ngt_executed_proactive_gc_total", Description: n.executedProactiveGCTotal.Description(), Measure: &n.executedProactiveGCTotal, Aggregation: metrics.LastValue(), }, { - Name: "ngt_is_indexing", + Name: "agent_core_ngt_is_indexing", Description: n.isIndexing.Description(), Measure: &n.isIndexing, Aggregation: metrics.LastValue(), }, { - Name: "ngt_is_saving", + Name: "agent_core_ngt_is_saving", Description: n.isSaving.Description(), Measure: &n.isSaving, Aggregation: metrics.LastValue(), diff --git a/internal/servers/server/option.go b/internal/servers/server/option.go index eca31de354..792b66249a 100644 --- a/internal/servers/server/option.go +++ b/internal/servers/server/option.go @@ -21,6 +21,7 @@ import ( "crypto/tls" "fmt" "net/http" + "strings" "time" "github.com/vdaas/vald/internal/errgroup" @@ -28,6 +29,7 @@ import ( "github.com/vdaas/vald/internal/log" "github.com/vdaas/vald/internal/net" "github.com/vdaas/vald/internal/net/grpc" + "github.com/vdaas/vald/internal/net/grpc/interceptor/server/logging" "github.com/vdaas/vald/internal/net/http/rest" "github.com/vdaas/vald/internal/timeutil" ) @@ -420,8 +422,18 @@ func WithGRPCHeaderTableSize(size int) Option { } } -func WithGRPCInterceptors(name ...string) Option { +func WithGRPCInterceptors(names ...string) Option { return func(s *server) { - // s.grpc.opts = append(s.grpc.opts, grpc.UnaryInterceptor(uint32(size))) + for _, name := range names { + switch strings.ToLower(name) { + case "accessloginterceptor", "accesslog": + s.grpc.opts = append( + s.grpc.opts, + grpc.ChainUnaryInterceptor(logging.AccessLogInterceptor()), + grpc.ChainStreamInterceptor(logging.AccessLogStreamInterceptor()), + ) + default: + } + } } } diff --git a/internal/servers/server/option_test.go b/internal/servers/server/option_test.go index ad027c4f66..6365add4af 100644 --- a/internal/servers/server/option_test.go +++ b/internal/servers/server/option_test.go @@ -2245,11 +2245,58 @@ func TestWithGRPCInterceptors(t *testing.T) { tests := []test{ { - name: "set success", + name: "set nothing", + names: []string{}, checkFunc: func(opt Option) error { got := new(server) opt(got) + if len(got.grpc.opts) != 0 { + return errors.Errorf("Expecting nothing in got.grpc.opts: got = %#v", got) + } + + return nil + }, + }, + { + name: "do nothing if invalid name", + names: []string{"invalid"}, + checkFunc: func(opt Option) error { + got := new(server) + opt(got) + + if len(got.grpc.opts) != 0 { + return errors.Errorf("Expecting nothing in got.grpc.opts: got = %#v", got) + } + + return nil + }, + }, + { + name: "Add AccessLogInterceptor using 'AccessLogInterceptor'", + names: []string{"AccessLogInterceptor"}, + checkFunc: func(opt Option) error { + got := new(server) + opt(got) + + if len(got.grpc.opts) != 2 { + return errors.Errorf("Expecting two elements in got.grpc.opts: got = %#v", got) + } + + return nil + }, + }, + { + name: "Add AccessLogInterceptor using 'AccessLog'", + names: []string{"AccessLog"}, + checkFunc: func(opt Option) error { + got := new(server) + opt(got) + + if len(got.grpc.opts) != 2 { + return errors.Errorf("Expecting two elements in got.grpc.opts: got = %#v", got) + } + return nil }, }, diff --git a/k8s/metrics/grafana/configmap.yaml b/k8s/metrics/grafana/configmap.yaml index 47151b56d1..e8d509112a 100644 --- a/k8s/metrics/grafana/configmap.yaml +++ b/k8s/metrics/grafana/configmap.yaml @@ -1,5 +1,4 @@ --- ---- # # Copyright (C) 2019-2021 vdaas.org vald team # @@ -23,14 +22,22 @@ data: providers.yaml: | apiVersion: 1 providers: - - name: 'default' - orgId: 1 - folder: '' - type: file - disableDeletion: false - editable: true - options: - path: /var/lib/grafana/dashboards + - name: 'default' + orgId: 1 + folder: '' + type: file + disableDeletion: false + editable: true + options: + path: /var/lib/grafana/dashboards + - name: dashboards-vald + orgId: 1 + folder: Vald + type: file + disableDeletion: true + editable: false + options: + path: /var/lib/grafana/dashboards-vald --- apiVersion: v1 kind: ConfigMap @@ -40,10 +47,47 @@ data: providers.yaml: | apiVersion: 1 datasources: - - name: 'prometheus' - type: prometheus - access: proxy - orgId: 1 - url: http://prometheus.default.svc.cluster.local:9090 - isDefault: true - editable: false + - name: Prometheus + type: prometheus + access: proxy + orgId: 1 + uid: vald_prometheus + url: http://prometheus:9090 + isDefault: true + editable: false + - name: Jaeger + type: jaeger + access: proxy + orgId: 1 + uid: vald_jaeger + url: http://jaeger-query:80 + isDefault: false + editable: false + - name: Loki + type: loki + access: proxy + orgId: 1 + uid: vald_loki + url: http://loki:3100 + isDefault: false + editable: false + jsonData: + derivedFields: + - datasourceUid: vald_jaeger + matcherRegex: '"(?:traceID|trace_id)\":"(\w+)"' + name: TraceID + url: $${__value.raw} + internalLink: true + - datasourceUid: vald_tempo + matcherRegex: '"(?:traceID|trace_id)\":"(\w+)"' + name: TraceID + url: $${__value.raw} + internalLink: true + - name: Tempo + type: tempo + access: browser + orgId: 1 + uid: vald_tempo + url: http://tempo:16686 + isDefault: false + editable: false diff --git a/k8s/metrics/grafana/dashboards/00-vald-cluster-overview.yaml b/k8s/metrics/grafana/dashboards/00-vald-cluster-overview.yaml new file mode 100644 index 0000000000..3501ddbe4e --- /dev/null +++ b/k8s/metrics/grafana/dashboards/00-vald-cluster-overview.yaml @@ -0,0 +1,4587 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboards-vald-cluster-overview +data: + vald-cluster-overview.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1607306546843, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 2, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^vald_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Vald Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 4, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 5, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_os$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go OS", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 2, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000000000 + }, + { + "color": "#d44a3a", + "value": 1000000000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 13, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=~\"$ReplicaSet\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Total memory working set ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 7, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^git_commit$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Git Commit", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 9, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^build_time$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Build at", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 89, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum by (instance) (irate(node_cpu_seconds_total{mode!=\"idle\"}[$interval]))", + "interval": "", + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Node CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "decimals": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 6 + }, + "hiddenSeries": false, + "id": 121, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes", + "interval": "", + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Node Memory", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 57, + "panels": [], + "repeat": "ReplicaSet", + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-agent-ngt", + "value": "vald-agent-ngt" + } + }, + "title": "$ReplicaSet", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 0, + "y": 13 + }, + "id": 14, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "v", + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-agent-ngt", + "value": "vald-agent-ngt" + } + }, + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 5, + "x": 3, + "y": 13 + }, + "hiddenSeries": false, + "id": 31, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-agent-ngt", + "value": "vald-agent-ngt" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(kube_deployment_status_replicas{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Replicas", + "refId": "A" + }, + { + "expr": "max(kube_deployment_status_replicas_available{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "B" + }, + { + "expr": "max(kube_deployment_status_replicas_unavailable{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "C" + }, + { + "expr": "max(kube_deployment_status_replicas_updated{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1\n", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "D" + }, + { + "expr": "max(kube_daemonset_status_current_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Current number scheduled", + "refId": "E" + }, + { + "expr": "max(kube_daemonset_status_desired_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Desired number scheduled", + "refId": "F" + }, + { + "expr": "max(kube_daemonset_status_number_available{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "G" + }, + { + "expr": "max(kube_daemonset_status_number_misscheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Misscheduled", + "refId": "H" + }, + { + "expr": "max(kube_daemonset_status_number_ready{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "I" + }, + { + "expr": "max(kube_daemonset_status_number_unavailable{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "J" + }, + { + "expr": "max(kube_statefulset_status_replicas_current{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Current", + "refId": "K" + }, + { + "expr": "max(kube_statefulset_status_replicas_ready{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "L" + }, + { + "expr": "max(kube_statefulset_status_replicas_updated{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "M" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 13 + }, + "hiddenSeries": false, + "id": 24, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-agent-ngt", + "value": "vald-agent-ngt" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 13 + }, + "hiddenSeries": false, + "id": 28, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-agent-ngt", + "value": "vald-agent-ngt" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 122, + "panels": [], + "repeatIteration": 1607306546843, + "repeatPanelId": 57, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-discoverer", + "value": "vald-discoverer" + } + }, + "title": "$ReplicaSet", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 0, + "y": 22 + }, + "id": 123, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 14, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-discoverer", + "value": "vald-discoverer" + } + }, + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 5, + "x": 3, + "y": 22 + }, + "hiddenSeries": false, + "id": 124, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 31, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-discoverer", + "value": "vald-discoverer" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(kube_deployment_status_replicas{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Replicas", + "refId": "A" + }, + { + "expr": "max(kube_deployment_status_replicas_available{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "B" + }, + { + "expr": "max(kube_deployment_status_replicas_unavailable{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "C" + }, + { + "expr": "max(kube_deployment_status_replicas_updated{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1\n", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "D" + }, + { + "expr": "max(kube_daemonset_status_current_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Current number scheduled", + "refId": "E" + }, + { + "expr": "max(kube_daemonset_status_desired_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Desired number scheduled", + "refId": "F" + }, + { + "expr": "max(kube_daemonset_status_number_available{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "G" + }, + { + "expr": "max(kube_daemonset_status_number_misscheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Misscheduled", + "refId": "H" + }, + { + "expr": "max(kube_daemonset_status_number_ready{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "I" + }, + { + "expr": "max(kube_daemonset_status_number_unavailable{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "J" + }, + { + "expr": "max(kube_statefulset_status_replicas_current{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Current", + "refId": "K" + }, + { + "expr": "max(kube_statefulset_status_replicas_ready{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "L" + }, + { + "expr": "max(kube_statefulset_status_replicas_updated{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "M" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 22 + }, + "hiddenSeries": false, + "id": 125, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 24, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-discoverer", + "value": "vald-discoverer" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 22 + }, + "hiddenSeries": false, + "id": 126, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 28, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-discoverer", + "value": "vald-discoverer" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 127, + "panels": [], + "repeatIteration": 1607306546843, + "repeatPanelId": 57, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-gateway", + "value": "vald-gateway" + } + }, + "title": "$ReplicaSet", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 0, + "y": 31 + }, + "id": 128, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 14, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-gateway", + "value": "vald-gateway" + } + }, + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 5, + "x": 3, + "y": 31 + }, + "hiddenSeries": false, + "id": 129, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 31, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-gateway", + "value": "vald-gateway" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(kube_deployment_status_replicas{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Replicas", + "refId": "A" + }, + { + "expr": "max(kube_deployment_status_replicas_available{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "B" + }, + { + "expr": "max(kube_deployment_status_replicas_unavailable{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "C" + }, + { + "expr": "max(kube_deployment_status_replicas_updated{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1\n", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "D" + }, + { + "expr": "max(kube_daemonset_status_current_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Current number scheduled", + "refId": "E" + }, + { + "expr": "max(kube_daemonset_status_desired_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Desired number scheduled", + "refId": "F" + }, + { + "expr": "max(kube_daemonset_status_number_available{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "G" + }, + { + "expr": "max(kube_daemonset_status_number_misscheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Misscheduled", + "refId": "H" + }, + { + "expr": "max(kube_daemonset_status_number_ready{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "I" + }, + { + "expr": "max(kube_daemonset_status_number_unavailable{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "J" + }, + { + "expr": "max(kube_statefulset_status_replicas_current{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Current", + "refId": "K" + }, + { + "expr": "max(kube_statefulset_status_replicas_ready{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "L" + }, + { + "expr": "max(kube_statefulset_status_replicas_updated{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "M" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 31 + }, + "hiddenSeries": false, + "id": 130, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 24, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-gateway", + "value": "vald-gateway" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 31 + }, + "hiddenSeries": false, + "id": 131, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 28, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-gateway", + "value": "vald-gateway" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 39 + }, + "id": 132, + "panels": [], + "repeatIteration": 1607306546843, + "repeatPanelId": 57, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-backup", + "value": "vald-manager-backup" + } + }, + "title": "$ReplicaSet", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 0, + "y": 40 + }, + "id": 133, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 14, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-backup", + "value": "vald-manager-backup" + } + }, + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 5, + "x": 3, + "y": 40 + }, + "hiddenSeries": false, + "id": 134, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 31, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-backup", + "value": "vald-manager-backup" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(kube_deployment_status_replicas{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Replicas", + "refId": "A" + }, + { + "expr": "max(kube_deployment_status_replicas_available{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "B" + }, + { + "expr": "max(kube_deployment_status_replicas_unavailable{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "C" + }, + { + "expr": "max(kube_deployment_status_replicas_updated{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1\n", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "D" + }, + { + "expr": "max(kube_daemonset_status_current_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Current number scheduled", + "refId": "E" + }, + { + "expr": "max(kube_daemonset_status_desired_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Desired number scheduled", + "refId": "F" + }, + { + "expr": "max(kube_daemonset_status_number_available{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "G" + }, + { + "expr": "max(kube_daemonset_status_number_misscheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Misscheduled", + "refId": "H" + }, + { + "expr": "max(kube_daemonset_status_number_ready{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "I" + }, + { + "expr": "max(kube_daemonset_status_number_unavailable{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "J" + }, + { + "expr": "max(kube_statefulset_status_replicas_current{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Current", + "refId": "K" + }, + { + "expr": "max(kube_statefulset_status_replicas_ready{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "L" + }, + { + "expr": "max(kube_statefulset_status_replicas_updated{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "M" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 40 + }, + "hiddenSeries": false, + "id": 135, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 24, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-backup", + "value": "vald-manager-backup" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 40 + }, + "hiddenSeries": false, + "id": 136, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 28, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-backup", + "value": "vald-manager-backup" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 48 + }, + "id": 137, + "panels": [], + "repeatIteration": 1607306546843, + "repeatPanelId": 57, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-compressor", + "value": "vald-manager-compressor" + } + }, + "title": "$ReplicaSet", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 0, + "y": 49 + }, + "id": 138, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 14, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-compressor", + "value": "vald-manager-compressor" + } + }, + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 5, + "x": 3, + "y": 49 + }, + "hiddenSeries": false, + "id": 139, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 31, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-compressor", + "value": "vald-manager-compressor" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(kube_deployment_status_replicas{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Replicas", + "refId": "A" + }, + { + "expr": "max(kube_deployment_status_replicas_available{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "B" + }, + { + "expr": "max(kube_deployment_status_replicas_unavailable{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "C" + }, + { + "expr": "max(kube_deployment_status_replicas_updated{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1\n", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "D" + }, + { + "expr": "max(kube_daemonset_status_current_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Current number scheduled", + "refId": "E" + }, + { + "expr": "max(kube_daemonset_status_desired_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Desired number scheduled", + "refId": "F" + }, + { + "expr": "max(kube_daemonset_status_number_available{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "G" + }, + { + "expr": "max(kube_daemonset_status_number_misscheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Misscheduled", + "refId": "H" + }, + { + "expr": "max(kube_daemonset_status_number_ready{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "I" + }, + { + "expr": "max(kube_daemonset_status_number_unavailable{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "J" + }, + { + "expr": "max(kube_statefulset_status_replicas_current{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Current", + "refId": "K" + }, + { + "expr": "max(kube_statefulset_status_replicas_ready{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "L" + }, + { + "expr": "max(kube_statefulset_status_replicas_updated{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "M" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 49 + }, + "hiddenSeries": false, + "id": 140, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 24, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-compressor", + "value": "vald-manager-compressor" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 49 + }, + "hiddenSeries": false, + "id": 141, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 28, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-compressor", + "value": "vald-manager-compressor" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 57 + }, + "id": 142, + "panels": [], + "repeatIteration": 1607306546843, + "repeatPanelId": 57, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-index", + "value": "vald-manager-index" + } + }, + "title": "$ReplicaSet", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 0, + "y": 58 + }, + "id": 143, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 14, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-index", + "value": "vald-manager-index" + } + }, + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 5, + "x": 3, + "y": 58 + }, + "hiddenSeries": false, + "id": 144, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 31, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-index", + "value": "vald-manager-index" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(kube_deployment_status_replicas{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Replicas", + "refId": "A" + }, + { + "expr": "max(kube_deployment_status_replicas_available{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "B" + }, + { + "expr": "max(kube_deployment_status_replicas_unavailable{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "C" + }, + { + "expr": "max(kube_deployment_status_replicas_updated{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1\n", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "D" + }, + { + "expr": "max(kube_daemonset_status_current_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Current number scheduled", + "refId": "E" + }, + { + "expr": "max(kube_daemonset_status_desired_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Desired number scheduled", + "refId": "F" + }, + { + "expr": "max(kube_daemonset_status_number_available{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "G" + }, + { + "expr": "max(kube_daemonset_status_number_misscheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Misscheduled", + "refId": "H" + }, + { + "expr": "max(kube_daemonset_status_number_ready{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "I" + }, + { + "expr": "max(kube_daemonset_status_number_unavailable{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "J" + }, + { + "expr": "max(kube_statefulset_status_replicas_current{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Current", + "refId": "K" + }, + { + "expr": "max(kube_statefulset_status_replicas_ready{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "L" + }, + { + "expr": "max(kube_statefulset_status_replicas_updated{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "M" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 58 + }, + "hiddenSeries": false, + "id": 145, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 24, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-index", + "value": "vald-manager-index" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 58 + }, + "hiddenSeries": false, + "id": 146, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 28, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-manager-index", + "value": "vald-manager-index" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 66 + }, + "id": 147, + "panels": [], + "repeatIteration": 1607306546843, + "repeatPanelId": 57, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-meta", + "value": "vald-meta" + } + }, + "title": "$ReplicaSet", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 0, + "y": 67 + }, + "id": 148, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 14, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-meta", + "value": "vald-meta" + } + }, + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 5, + "x": 3, + "y": 67 + }, + "hiddenSeries": false, + "id": 149, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 31, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-meta", + "value": "vald-meta" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(kube_deployment_status_replicas{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Replicas", + "refId": "A" + }, + { + "expr": "max(kube_deployment_status_replicas_available{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "B" + }, + { + "expr": "max(kube_deployment_status_replicas_unavailable{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "C" + }, + { + "expr": "max(kube_deployment_status_replicas_updated{namespace=\"$Namespace\", deployment=\"$ReplicaSet\"}) and on() count(kube_deployment_created{deployment=~\"$ReplicaSet\"}) >= 1\n", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "D" + }, + { + "expr": "max(kube_daemonset_status_current_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Current number scheduled", + "refId": "E" + }, + { + "expr": "max(kube_daemonset_status_desired_number_scheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Desired number scheduled", + "refId": "F" + }, + { + "expr": "max(kube_daemonset_status_number_available{namespace\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Available", + "refId": "G" + }, + { + "expr": "max(kube_daemonset_status_number_misscheduled{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Misscheduled", + "refId": "H" + }, + { + "expr": "max(kube_daemonset_status_number_ready{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "I" + }, + { + "expr": "max(kube_daemonset_status_number_unavailable{namespace=\"$Namespace\", daemonset=\"$ReplicaSet\"}) and on() count(kube_daemonset_created{daemonset=~\"$ReplicaSet\"}) >= 1", + "hide": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Unavailable", + "refId": "J" + }, + { + "expr": "max(kube_statefulset_status_replicas_current{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Current", + "refId": "K" + }, + { + "expr": "max(kube_statefulset_status_replicas_ready{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Ready", + "refId": "L" + }, + { + "expr": "max(kube_statefulset_status_replicas_updated{namespace=\"$Namespace\", statefulset=\"$ReplicaSet\"}) and on() count(kube_statefulset_created{statefulset=~\"$ReplicaSet\"}) >= 1", + "intervalFactor": 2, + "legendFormat": "Updated", + "refId": "M" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 67 + }, + "hiddenSeries": false, + "id": 150, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 24, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-meta", + "value": "vald-meta" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 67 + }, + "hiddenSeries": false, + "id": 151, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "v", + "repeatIteration": 1607306546843, + "repeatPanelId": 28, + "repeatedByRow": true, + "scopedVars": { + "ReplicaSet": { + "selected": false, + "text": "vald-meta", + "value": "vald-meta" + } + }, + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": false, + "schemaVersion": 26, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info, namespace)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "namespace", + "multi": false, + "name": "Namespace", + "options": [], + "query": "label_values(vald_app_version_info, namespace)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "vald-.*", + "current": { + "selected": true, + "tags": [], + "text": [ + "All" + ], + "value": [ + "$__all" + ] + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info, app)", + "error": null, + "hide": 0, + "includeAll": true, + "label": "name", + "multi": true, + "name": "ReplicaSet", + "options": [], + "query": "label_values(vald_app_version_info, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-agent-ngt", + "value": "vald-agent-ngt" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=\"agent ngt\"}, app)", + "error": null, + "hide": 2, + "includeAll": false, + "label": null, + "multi": false, + "name": "ValdAgentNGT", + "options": [], + "query": "label_values(vald_app_version_info{server_name=\"agent ngt\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-discoverer", + "value": "vald-discoverer" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=~\"discoverer.*\"}, app)", + "error": null, + "hide": 2, + "includeAll": false, + "label": null, + "multi": false, + "name": "ValdDiscovererK8s", + "options": [], + "query": "label_values(vald_app_version_info{server_name=~\"discoverer.*\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-gateway", + "value": "vald-gateway" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=\"gateway vald\"}, app)", + "error": null, + "hide": 2, + "includeAll": false, + "label": null, + "multi": false, + "name": "ValdGateway", + "options": [], + "query": "label_values(vald_app_version_info{server_name=\"gateway vald\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-manager-backup", + "value": "vald-manager-backup" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=~\"manager backup .*\"}, app)", + "error": null, + "hide": 2, + "includeAll": false, + "label": null, + "multi": false, + "name": "ValdManagerBackup", + "options": [], + "query": "label_values(vald_app_version_info{server_name=~\"manager backup .*\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-manager-compressor", + "value": "vald-manager-compressor" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=\"manager compressor\"}, app)", + "error": null, + "hide": 2, + "includeAll": false, + "label": null, + "multi": false, + "name": "ValdManagerCompressor", + "options": [], + "query": "label_values(vald_app_version_info{server_name=\"manager compressor\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-manager-index", + "value": "vald-manager-index" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=\"index manager\"}, app)", + "error": null, + "hide": 2, + "includeAll": false, + "label": null, + "multi": false, + "name": "ValdManagerIndex", + "options": [], + "query": "label_values(vald_app_version_info{server_name=\"index manager\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-meta", + "value": "vald-meta" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=~\"meta .*\"}, app)", + "error": null, + "hide": 2, + "includeAll": false, + "label": null, + "multi": false, + "name": "ValdMeta", + "options": [], + "query": "label_values(vald_app_version_info{server_name=~\"meta .*\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "30m", + "value": "30m" + }, + "error": null, + "hide": 0, + "label": "interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "2m", + "value": "2m" + }, + { + "selected": false, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": true, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "1m,2m,5m,10m,30m,1h,6h,12h,1d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-5m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Vald Cluster Overview", + "uid": "ZQxyaOlWk", + "version": 1 + }= diff --git a/k8s/metrics/grafana/dashboards/01-vald-agent.yaml b/k8s/metrics/grafana/dashboards/01-vald-agent.yaml new file mode 100644 index 0000000000..583f95d199 --- /dev/null +++ b/k8s/metrics/grafana/dashboards/01-vald-agent.yaml @@ -0,0 +1,1939 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboards-vald-agent +data: + vald-agent.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1606985105044, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 14, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^vald_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Vald Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 16, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 15, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^ngt_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}, \"ngt_version\", \"v$1\", \"ngt_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "NGT Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 300 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 19, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance!=\"\"})", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 2, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000000000 + }, + { + "color": "#d44a3a", + "value": 1000000000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 20, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"})", + "format": "time_series", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Total memory working set ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 17, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^git_commit$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Git Commit", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 18, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^build_time$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Build at", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#d44a3a", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100000 + }, + { + "color": "#299c46", + "value": 10000000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 6 + }, + "id": 2, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_index_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "NGT indices", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1 + }, + { + "color": "#d44a3a", + "value": 5 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 8, + "y": 6 + }, + "id": 21, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_is_indexing{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "format": "time_series", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Indexing pods", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 1000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 6 + }, + "id": 4, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "repeat": null, + "repeatDirection": "h", + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_uncommitted_index_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "NGT uncommitted indices", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 1000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 16, + "y": 6 + }, + "id": 5, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_insert_vcache_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "insert vcache", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 1000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 20, + "y": 6 + }, + "id": 6, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_delete_vcache_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "delete vcache", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 12 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 12 + }, + "hiddenSeries": false, + "id": 27, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 20 + }, + "hiddenSeries": false, + "id": 24, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_index_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "interval": "", + "legendFormat": "indices", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "NGT indices", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 20 + }, + "hiddenSeries": false, + "id": 25, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_uncommitted_index_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "interval": "", + "legendFormat": "uncommitted-indices", + "refId": "A" + }, + { + "expr": " sum(vald_agent_core_ngt_insert_vcache_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "interval": "", + "legendFormat": "insert-vcache", + "refId": "B" + }, + { + "expr": "sum(vald_agent_core_ngt_delete_vcache_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "interval": "", + "legendFormat": "delete-vcache", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "NGT uncommitted indices", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "cacheTimeout": null, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 28 + }, + "hiddenSeries": false, + "id": 28, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(vald_agent_core_ngt_is_indexing{namespace=\"$Namespace\", app=~\"$ReplicaSet\"})", + "instant": false, + "interval": "", + "intervalFactor": 2, + "legendFormat": "Indexing pods", + "refId": "A" + }, + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"}) - sum(vald_agent_core_ngt_is_indexing{namespace=\"$Namespace\", app=~\"$ReplicaSet\"})", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Not indexing pods", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Number of indexing pods", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 28 + }, + "hiddenSeries": false, + "id": 10, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "vald_goroutine_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "goroutine count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 36 + }, + "hiddenSeries": false, + "id": 30, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_method, grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} ({{grpc_server_status}})", + "refId": "A" + }, + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Total ({{grpc_server_status}})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed RPCs /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 36 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "legendFormat": "{{grpc_server_method}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "legendFormat": "{{grpc_server_method}} p99", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "", + "schemaVersion": 26, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info, namespace)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "namespace", + "multi": false, + "name": "Namespace", + "options": [], + "query": "label_values(vald_app_version_info, namespace)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-agent-ngt", + "value": "vald-agent-ngt" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_agent_core_ngt_is_indexing{namespace=~\"$Namespace\"}, app)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "name", + "multi": false, + "name": "ReplicaSet", + "options": [], + "query": "label_values(vald_agent_core_ngt_is_indexing{namespace=~\"$Namespace\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".+", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_agent_core_ngt_is_indexing{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "error": null, + "hide": 0, + "includeAll": true, + "label": "pod", + "multi": false, + "name": "PodName", + "options": [], + "query": "label_values(vald_agent_core_ngt_is_indexing{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": true, + "text": "5m", + "value": "5m" + }, + "error": null, + "hide": 0, + "label": "interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "2m", + "value": "2m" + }, + { + "selected": true, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "1m,2m,5m,10m,30m,1h,6h,12h,1d", + "queryValue": "", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Vald Agent", + "uid": "nPEhI-QWk", + "version": 1 + } diff --git a/k8s/metrics/grafana/dashboards/02-vald-discoverer.yaml b/k8s/metrics/grafana/dashboards/02-vald-discoverer.yaml new file mode 100644 index 0000000000..46183be232 --- /dev/null +++ b/k8s/metrics/grafana/dashboards/02-vald-discoverer.yaml @@ -0,0 +1,1344 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboards-vald-discoverer +data: + vald-discoverer.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1607330909211, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 14, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^vald_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Vald Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 16, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 34, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_os$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go OS", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 300 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 19, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 2, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000000000 + }, + { + "color": "#d44a3a", + "value": 1000000000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 20, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"})", + "format": "time_series", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Total memory working set ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 17, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^git_commit$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Git Commit", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 18, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^build_time$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Build at", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 6 + }, + "hiddenSeries": false, + "id": 27, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 14 + }, + "hiddenSeries": false, + "id": 30, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_method, grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} ({{grpc_server_status}})", + "refId": "A" + }, + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Total ({{grpc_server_status}})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed RPCs /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 14 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p99", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 36, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "vald_goroutine_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "goroutine count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 38, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "irate(vald_gc_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\".+\"}[$interval])", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GC count /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "", + "schemaVersion": 26, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "Prometheus", + "definition": "label_values(kube_pod_info, namespace)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "namespace", + "multi": false, + "name": "Namespace", + "options": [], + "query": "label_values(kube_pod_info, namespace)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-discoverer", + "value": "vald-discoverer" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=~\"discoverer.*\"}, app)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "name", + "multi": false, + "name": "ReplicaSet", + "options": [], + "query": "label_values(vald_app_version_info{server_name=~\"discoverer.*\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": true, + "text": "All", + "value": "$__all" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "error": null, + "hide": 0, + "includeAll": true, + "label": "pod", + "multi": false, + "name": "PodName", + "options": [], + "query": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "5m", + "value": "5m" + }, + "error": null, + "hide": 0, + "label": "interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "2m", + "value": "2m" + }, + { + "selected": true, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "1m,2m,5m,10m,30m,1h,6h,12h,1d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Vald Discoverer", + "uid": "JkemcMB", + "version": 1 + } diff --git a/k8s/metrics/grafana/dashboards/03-vald-backup-manager.yaml b/k8s/metrics/grafana/dashboards/03-vald-backup-manager.yaml new file mode 100644 index 0000000000..a1bb7b11c7 --- /dev/null +++ b/k8s/metrics/grafana/dashboards/03-vald-backup-manager.yaml @@ -0,0 +1,1839 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboards-vald-backup-manager +data: + vald-backup-manager.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1607410026901, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 14, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^vald_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Vald Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 16, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 34, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_os$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go OS", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 300 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 19, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 2, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000000000 + }, + { + "color": "#d44a3a", + "value": 1000000000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 20, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"})", + "format": "time_series", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Total memory working set ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 17, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^git_commit$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Git Commit", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 18, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^build_time$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Build at", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 6 + }, + "hiddenSeries": false, + "id": 27, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 14 + }, + "hiddenSeries": false, + "id": 30, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_method, grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} ({{grpc_server_status}})", + "refId": "A" + }, + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Total ({{grpc_server_status}})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed RPCs /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 14 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p99", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 36, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "vald_goroutine_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "goroutine count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 38, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "irate(vald_gc_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\".+\"}[$interval])", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GC count /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 48, + "title": "Cassandra", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 31 + }, + "hiddenSeries": false, + "id": 42, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_db_nosql_cassandra_completed_query_total{namespace=\"$Namespace\", app=\"$ReplicaSet\"}[$interval])) by (instance)", + "hide": true, + "interval": "", + "legendFormat": "{{instance}}", + "refId": "A" + }, + { + "expr": "sum(irate(vald_db_nosql_cassandra_completed_query_total{namespace=\"$Namespace\", app=\"$ReplicaSet\"}[$interval]))", + "interval": "", + "legendFormat": "total", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed Query /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 31 + }, + "hiddenSeries": false, + "id": 44, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p99", + "refId": "C" + }, + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p50", + "refId": "D" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "interval": "", + "legendFormat": "total p95", + "refId": "E" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p99", + "refId": "F" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 39 + }, + "id": 46, + "panels": [], + "title": "MySQL", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 40 + }, + "hiddenSeries": false, + "id": 50, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_db_rdb_mysql_completed_query_total{namespace=\"$Namespace\", app=\"$ReplicaSet\"}[$interval])) by (instance)", + "hide": true, + "interval": "", + "legendFormat": "{{instance}}", + "refId": "A" + }, + { + "expr": "sum(irate(vald_db_rdb_mysql_completed_query_total{namespace=\"$Namespace\", app=\"$ReplicaSet\"}[$interval]))", + "interval": "", + "legendFormat": "total", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed Query /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 40 + }, + "hiddenSeries": false, + "id": 52, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_rdb_mysql_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_rdb_mysql_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_rdb_mysql_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p99", + "refId": "C" + }, + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_rdb_mysql_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p50", + "refId": "D" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_rdb_mysql_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": false, + "interval": "", + "legendFormat": "total p95", + "refId": "E" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_rdb_mysql_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p99", + "refId": "F" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "", + "schemaVersion": 26, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "Prometheus", + "definition": "label_values(kube_pod_info, namespace)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "namespace", + "multi": false, + "name": "Namespace", + "options": [], + "query": "label_values(kube_pod_info, namespace)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-manager-backup", + "value": "vald-manager-backup" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=~\"manager backup .*\"}, app)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "name", + "multi": false, + "name": "ReplicaSet", + "options": [], + "query": "label_values(vald_app_version_info{server_name=~\"manager backup .*\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "error": null, + "hide": 0, + "includeAll": true, + "label": "pod", + "multi": false, + "name": "PodName", + "options": [], + "query": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "5m", + "value": "5m" + }, + "error": null, + "hide": 0, + "label": "interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "2m", + "value": "2m" + }, + { + "selected": true, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "1m,2m,5m,10m,30m,1h,6h,12h,1d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Vald Backup Manager", + "uid": "FmbrWNg", + "version": 1 + } diff --git a/k8s/metrics/grafana/dashboards/04-vald-compressor.yaml b/k8s/metrics/grafana/dashboards/04-vald-compressor.yaml new file mode 100644 index 0000000000..3150d7ed61 --- /dev/null +++ b/k8s/metrics/grafana/dashboards/04-vald-compressor.yaml @@ -0,0 +1,2029 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboards-vald-compressor +data: + vald-compressor.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1607411101985, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 14, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^vald_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Vald Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 16, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 34, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_os$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go OS", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 300 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 19, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": null, + "decimals": 2, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "format": "decbytes", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 20, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "pluginVersion": "6.6.2", + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"})", + "format": "time_series", + "refId": "A" + } + ], + "thresholds": "10000000000, 1000000000000", + "timeFrom": null, + "timeShift": null, + "title": "Total memory working set ($ReplicaSet)", + "type": "singlestat", + "valueFontSize": "120%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 17, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^git_commit$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Git Commit", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 18, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^build_time$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Build at", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#73BF69", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000 + }, + { + "color": "#F2495C", + "value": 1000000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 6 + }, + "id": 2, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(vald_compressor_registerer_buffer{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Registerer buffer", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#73BF69", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1000 + }, + { + "color": "#F2495C", + "value": 100000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 12, + "y": 6 + }, + "id": 40, + "interval": "", + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(irate(vald_compressor_registerer_requested_jobs_total{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}[$interval]))", + "instant": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Registerer requested jobs /s", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#73BF69", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1000 + }, + { + "color": "#F2495C", + "value": 100000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 18, + "y": 6 + }, + "id": 41, + "interval": "", + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(irate(vald_compressor_registerer_completed_jobs_total{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}[$interval]))", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Registerer completed jobs /s", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#73BF69", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000 + }, + { + "color": "#F2495C", + "value": 1000000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 12 + }, + "id": 42, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(vald_compressor_compressor_buffer{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Compress/Decompress buffer", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#73BF69", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1000 + }, + { + "color": "#F2495C", + "value": 100000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 12, + "y": 12 + }, + "id": 43, + "interval": "", + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(irate(vald_compressor_compressor_requested_jobs_total{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}[$interval]))", + "instant": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Compress/Decompress requested jobs /s", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#73BF69", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 1000 + }, + { + "color": "#F2495C", + "value": 100000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 18, + "y": 12 + }, + "id": 44, + "interval": "", + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(irate(vald_compressor_compressor_completed_jobs_total{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}[$interval]))", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Compress/Decompress completed jobs /s", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 18 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}[$interval])) by (pod) ", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 18 + }, + "hiddenSeries": false, + "id": 27, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 26 + }, + "hiddenSeries": false, + "id": 10, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_compressor_registerer_requested_jobs_total{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}[$interval]))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "requested", + "refId": "B" + }, + { + "expr": "sum(irate(vald_compressor_registerer_completed_jobs_total{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}[$interval]))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "completed", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Registerer requested/completed jobs /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 26 + }, + "hiddenSeries": false, + "id": 39, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(vald_compressor_registerer_buffer{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}) by (instance)", + "instant": false, + "interval": "", + "legendFormat": "{{instance}}", + "refId": "B" + }, + { + "expr": "sum(vald_compressor_registerer_buffer{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"})", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Total", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Registerer buffered jobs", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 34 + }, + "hiddenSeries": false, + "id": 30, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_method, grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} ({{grpc_server_status}})", + "refId": "A" + }, + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Total ({{grpc_server_status}})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed RPCs /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 34 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p99", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 42 + }, + "hiddenSeries": false, + "id": 36, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "vald_goroutine_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "goroutine count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 42 + }, + "hiddenSeries": false, + "id": 38, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "irate(vald_gc_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\".+\"}[$interval])", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GC count /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "", + "schemaVersion": 26, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "Prometheus", + "definition": "label_values(kube_pod_info, namespace)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "namespace", + "multi": false, + "name": "Namespace", + "options": [], + "query": "label_values(kube_pod_info, namespace)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-manager-compressor", + "value": "vald-manager-compressor" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_compressor_compressor_buffer{namespace=~\"$Namespace\"}, app)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "name", + "multi": false, + "name": "ReplicaSet", + "options": [], + "query": "label_values(vald_compressor_compressor_buffer{namespace=~\"$Namespace\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".+", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_compressor_compressor_buffer{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "error": null, + "hide": 0, + "includeAll": true, + "label": "pod", + "multi": false, + "name": "PodName", + "options": [], + "query": "label_values(vald_compressor_compressor_buffer{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "5m", + "value": "5m" + }, + "error": null, + "hide": 0, + "label": "interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "2m", + "value": "2m" + }, + { + "selected": true, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "1m,2m,5m,10m,30m,1h,6h,12h,1d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Vald Compressor", + "uid": "kPLYxeqZz", + "version": 1 + } diff --git a/k8s/metrics/grafana/dashboards/05-vald-index-manager.yaml b/k8s/metrics/grafana/dashboards/05-vald-index-manager.yaml new file mode 100644 index 0000000000..9c1f93e8ed --- /dev/null +++ b/k8s/metrics/grafana/dashboards/05-vald-index-manager.yaml @@ -0,0 +1,1344 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboards-vald-index-manager +data: + vald-index-manager.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1607413389465, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 14, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^vald_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Vald Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 16, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 34, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_os$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go OS", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 300 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 19, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 2, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000000000 + }, + { + "color": "#d44a3a", + "value": 1000000000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 20, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"})", + "format": "time_series", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Total memory working set ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 17, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^git_commit$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Git Commit", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 18, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^build_time$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Build at", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 6 + }, + "hiddenSeries": false, + "id": 27, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 14 + }, + "hiddenSeries": false, + "id": 30, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_method, grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} ({{grpc_server_status}})", + "refId": "A" + }, + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Total ({{grpc_server_status}})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed RPCs /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 14 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p99", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 36, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "vald_goroutine_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "goroutine count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 38, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "irate(vald_gc_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\".+\"}[$interval])", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GC count /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "", + "schemaVersion": 26, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "Prometheus", + "definition": "label_values(kube_pod_info, namespace)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "namespace", + "multi": false, + "name": "Namespace", + "options": [], + "query": "label_values(kube_pod_info, namespace)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-manager-index", + "value": "vald-manager-index" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=\"index manager\"}, app)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "name", + "multi": false, + "name": "ReplicaSet", + "options": [], + "query": "label_values(vald_app_version_info{server_name=\"index manager\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "error": null, + "hide": 0, + "includeAll": true, + "label": "pod", + "multi": false, + "name": "PodName", + "options": [], + "query": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "5m", + "value": "5m" + }, + "error": null, + "hide": 0, + "label": "interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "2m", + "value": "2m" + }, + { + "selected": true, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "1m,2m,5m,10m,30m,1h,6h,12h,1d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Vald Index Manager", + "uid": "joweKBeLz", + "version": 1 + } diff --git a/k8s/metrics/grafana/dashboards/06-vald-meta.yaml b/k8s/metrics/grafana/dashboards/06-vald-meta.yaml new file mode 100644 index 0000000000..b746c72b0c --- /dev/null +++ b/k8s/metrics/grafana/dashboards/06-vald-meta.yaml @@ -0,0 +1,1846 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboards-vald-meta +data: + vald-meta.json: | + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "iteration": 1607414338034, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 14, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^vald_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Vald Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 16, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_version$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "label_replace(vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go Version", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 34, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^go_os$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Go OS", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 100 + }, + { + "color": "#d44a3a", + "value": 300 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 19, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "count(up{namespace=\"$Namespace\", app=~\"$ReplicaSet\", app!=\"\"})", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Pods ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "decimals": 2, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "#299c46", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10000000000 + }, + { + "color": "#d44a3a", + "value": 1000000000000 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 20, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\"})", + "format": "time_series", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Total memory working set ($ReplicaSet)", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 3 + }, + "id": 17, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^git_commit$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Git Commit", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 3 + }, + "id": 18, + "interval": null, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^build_time$/", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "7.3.4", + "targets": [ + { + "expr": "vald_app_version_info{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Build at", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 22, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(container_cpu_usage_seconds_total{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}[$interval])) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 6 + }, + "hiddenSeries": false, + "id": 27, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(container_memory_working_set_bytes{namespace=\"$Namespace\", container=\"$ReplicaSet\", pod=~\"$PodName\"}) by (pod)", + "interval": "", + "legendFormat": "{{pod}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Memory working set", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 14 + }, + "hiddenSeries": false, + "id": 30, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_method, grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} ({{grpc_server_status}})", + "refId": "A" + }, + { + "expr": "sum(irate(vald_grpc_io_server_completed_rpcs{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (grpc_server_status)", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Total ({{grpc_server_status}})", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed RPCs /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 14 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_grpc_io_server_server_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, grpc_server_method))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{grpc_server_method}} p99", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 36, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "vald_goroutine_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\"$PodName\"}", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "goroutine count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 38, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "irate(vald_gc_count{namespace=\"$Namespace\", app=~\"$ReplicaSet\", instance=~\".+\"}[$interval])", + "format": "time_series", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "GC count /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 30 + }, + "id": 46, + "panels": [], + "title": "Cassandra", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 31 + }, + "hiddenSeries": false, + "id": 40, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_db_nosql_cassandra_completed_query_total{namespace=\"$Namespace\", app=\"$ReplicaSet\"}[$interval])) by (instance)", + "hide": true, + "instant": false, + "interval": "", + "legendFormat": "{{instance}}", + "refId": "A" + }, + { + "expr": "sum(irate(vald_db_nosql_cassandra_completed_query_total{namespace=\"$Namespace\", app=\"$ReplicaSet\"}[$interval]))", + "interval": "", + "legendFormat": "total", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed Query /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 31 + }, + "hiddenSeries": false, + "id": 42, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, target_pod))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p99", + "refId": "C" + }, + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p50", + "refId": "D" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "interval": "", + "legendFormat": "total p95", + "refId": "E" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_nosql_cassandra_query_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p99", + "refId": "F" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 39 + }, + "id": 44, + "panels": [], + "repeat": null, + "title": "Redis", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 40 + }, + "hiddenSeries": false, + "id": 48, + "interval": "", + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(irate(vald_db_kvs_redis_completed_pipeline_total{namespace=\"$Namespace\", app=\"$ReplicaSet\"}[$interval]))", + "instant": false, + "interval": "", + "legendFormat": "total", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Completed Query /s", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {}, + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 40 + }, + "hiddenSeries": false, + "id": 50, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.3.4", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_kvs_redis_pipeline_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p50", + "refId": "A" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_kvs_redis_pipeline_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p95", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_kvs_redis_pipeline_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le, instance))", + "hide": true, + "interval": "", + "legendFormat": "{{instance}} p99", + "refId": "C" + }, + { + "expr": "histogram_quantile(0.5, sum(rate(vald_db_kvs_redis_pipeline_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p50", + "refId": "D" + }, + { + "expr": "histogram_quantile(0.95, sum(rate(vald_db_kvs_redis_pipeline_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "interval": "", + "legendFormat": "total p95", + "refId": "E" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(vald_db_kvs_redis_pipeline_latency_bucket{namespace=\"$Namespace\", app=\"$ReplicaSet\", instance=~\"$PodName\"}[$interval])) by (le))", + "hide": true, + "interval": "", + "legendFormat": "total p99", + "refId": "F" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ms", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": false, + "schemaVersion": 26, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "selected": false, + "text": "default", + "value": "default" + }, + "datasource": "Prometheus", + "definition": "label_values(kube_pod_info, namespace)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "namespace", + "multi": false, + "name": "Namespace", + "options": [], + "query": "label_values(kube_pod_info, namespace)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "selected": false, + "text": "vald-meta", + "value": "vald-meta" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{server_name=~\"meta .*\"}, app)", + "error": null, + "hide": 0, + "includeAll": false, + "label": "name", + "multi": false, + "name": "ReplicaSet", + "options": [], + "query": "label_values(vald_app_version_info{server_name=~\"meta .*\"}, app)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": "Prometheus", + "definition": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "error": null, + "hide": 0, + "includeAll": true, + "label": "pod", + "multi": false, + "name": "PodName", + "options": [], + "query": "label_values(vald_app_version_info{namespace=~\"$Namespace\", app=~\"$ReplicaSet\"}, instance)", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "2m", + "value": "2m" + }, + "error": null, + "hide": 0, + "label": "interval", + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": true, + "text": "2m", + "value": "2m" + }, + { + "selected": false, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + } + ], + "query": "1m,2m,5m,10m,30m,1h,6h,12h,1d", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Vald Meta", + "uid": "lkjpKPAf", + "version": 1 + } diff --git a/k8s/metrics/grafana/dashboards/vald-agent.json b/k8s/metrics/grafana/dashboards/vald-agent.json deleted file mode 100644 index fc85e5b275..0000000000 --- a/k8s/metrics/grafana/dashboards/vald-agent.json +++ /dev/null @@ -1,1350 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 1, - "iteration": 1583588261227, - "links": [], - "panels": [ - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 0, - "y": 0 - }, - "id": 14, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "vald_version", - "targets": [ - { - "expr": "vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Vald Version", - "type": "singlestat", - "valueFontSize": "100%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 4, - "y": 0 - }, - "id": 16, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "go_version", - "targets": [ - { - "expr": "label_replace(vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Go Version", - "type": "singlestat", - "valueFontSize": "100%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 8, - "y": 0 - }, - "id": 15, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "ngt_version", - "targets": [ - { - "expr": "label_replace(vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}, \"ngt_version\", \"v$1\", \"ngt_version\", \"([^v].*)\")", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "NGT Version", - "type": "singlestat", - "valueFontSize": "100%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 12, - "y": 0 - }, - "id": 4, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "repeat": null, - "repeatDirection": "h", - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(vald_ngt_uncommitted_index_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"})", - "instant": true, - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "100, 1000", - "timeFrom": null, - "timeShift": null, - "title": "NGT uncommitted indices", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 16, - "y": 0 - }, - "id": 5, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(vald_ngt_insert_vcache_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"})", - "instant": true, - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "100, 1000", - "timeFrom": null, - "timeShift": null, - "title": "insert vcache", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 20, - "y": 0 - }, - "id": 6, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(vald_ngt_delete_vcache_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"})", - "instant": true, - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "100, 1000", - "timeFrom": null, - "timeShift": null, - "title": "delete vcache", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 8, - "x": 0, - "y": 3 - }, - "id": 17, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "git_commit", - "targets": [ - { - "expr": "vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Git Commit", - "type": "singlestat", - "valueFontSize": "50%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 8, - "y": 3 - }, - "id": 18, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "build_time", - "targets": [ - { - "expr": "vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Build at", - "type": "singlestat", - "valueFontSize": "50%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 6 - }, - "id": 2, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(vald_ngt_index_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"})", - "instant": true, - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "100000, 10000000", - "timeFrom": null, - "timeShift": null, - "title": "NGT indices", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": true, - "colorPostfix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 6, - "x": 12, - "y": 6 - }, - "id": 21, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(vald_ngt_is_indexing{job=~\"$ReplicaSet\", node=~\"$Node\"})", - "format": "time_series", - "refId": "A" - } - ], - "thresholds": "1, 5", - "timeFrom": null, - "timeShift": null, - "title": "Indexing pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 6, - "x": 18, - "y": 6 - }, - "id": 19, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ReplicaSet\", node=~\"$Node\"})", - "format": "table", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "100, 300", - "timeFrom": null, - "timeShift": null, - "title": "Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 12 - }, - "hiddenSeries": false, - "id": 24, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "vald_ngt_index_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NGT indices", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 10, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 12 - }, - "hiddenSeries": false, - "id": 25, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "vald_ngt_uncommitted_index_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "legendFormat": "{{pod}}-uncommitted-indices", - "refId": "A" - }, - { - "expr": "vald_ngt_insert_vcache_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "legendFormat": "{{pod}}-insert-vcache", - "refId": "B" - }, - { - "expr": "vald_ngt_delete_vcache_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "legendFormat": "{{pod}}-delete-vcache", - "refId": "C" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "NGT uncommitted indices", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 12 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "vald_goroutine_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "goroutine count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "5s", - "schemaVersion": 22, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allValue": null, - "current": { - "text": "vald-agent-ngt", - "value": "vald-agent-ngt" - }, - "datasource": "prometheus", - "definition": "label_values(vald_ngt_is_indexing, job)", - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "ReplicaSet", - "options": [], - "query": "label_values(vald_ngt_is_indexing, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "prometheus", - "definition": "label_values(vald_ngt_is_indexing, node)", - "hide": 0, - "includeAll": true, - "label": null, - "multi": false, - "name": "Node", - "options": [], - "query": "label_values(vald_ngt_is_indexing, node)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "prometheus", - "definition": "label_values(vald_ngt_is_indexing, pod)", - "hide": 0, - "includeAll": true, - "label": null, - "multi": false, - "name": "Pod", - "options": [], - "query": "label_values(vald_ngt_is_indexing, pod)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-5m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Vald Agent", - "uid": "nPEhI-QWk", - "version": 1 -} diff --git a/k8s/metrics/grafana/dashboards/vald-cluster-overview.json b/k8s/metrics/grafana/dashboards/vald-cluster-overview.json deleted file mode 100644 index c4c4d0f565..0000000000 --- a/k8s/metrics/grafana/dashboards/vald-cluster-overview.json +++ /dev/null @@ -1,1700 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": 2, - "iteration": 1583588399679, - "links": [], - "panels": [ - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 0, - "y": 0 - }, - "id": 2, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "vald_version", - "targets": [ - { - "expr": "vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\" ,pod=~\"$Pod\"}", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Vald Version", - "type": "singlestat", - "valueFontSize": "100%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 4, - "y": 0 - }, - "id": 4, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "go_version", - "targets": [ - { - "expr": "label_replace(vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}, \"go_version\", \"v$1\", \"go_version\", \"([^v].*)\")", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Go Version", - "type": "singlestat", - "valueFontSize": "100%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 8, - "y": 0 - }, - "id": 5, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "go_os", - "targets": [ - { - "expr": "vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Go OS", - "type": "singlestat", - "valueFontSize": "100%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 2, - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 0 - }, - "id": 13, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(vald_alloc_bytes{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"})", - "format": "time_series", - "refId": "A" - } - ], - "thresholds": "10000000000, 1000000000000", - "timeFrom": null, - "timeShift": null, - "title": "Total heap memory alloc", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 8, - "x": 0, - "y": 3 - }, - "id": 7, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "git_commit", - "targets": [ - { - "expr": "vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Git Commit", - "type": "singlestat", - "valueFontSize": "50%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 8, - "y": 3 - }, - "id": 9, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "build_time", - "targets": [ - { - "expr": "vald_app_version_info{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Build at", - "type": "singlestat", - "valueFontSize": "50%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 0, - "y": 6 - }, - "id": 14, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ValdAgentNGT\", node=~\"$Node\"})", - "format": "time_series", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Agent Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 4, - "y": 6 - }, - "id": 15, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ValdDiscovererK8s\", node=~\"$Node\"})", - "format": "time_series", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Discoverer Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 8, - "y": 6 - }, - "id": 16, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ValdGateway\", node=~\"$Node\"})", - "format": "time_series", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Gateway Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 12, - "y": 6 - }, - "id": 17, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ValdManagerBackup\", node=~\"$Node\"})", - "format": "time_series", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Backup Manager Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 15, - "y": 6 - }, - "id": 18, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ValdManagerCompressor\", node=~\"$Node\"})", - "format": "time_series", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Compressor Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 18, - "y": 6 - }, - "id": 19, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ValdManagerIndex\", node=~\"$Node\"})", - "format": "time_series", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Index Manager Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": null, - "decimals": 0, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 21, - "y": 6 - }, - "id": 20, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "pluginVersion": "6.6.2", - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "count(up{job=~\"$ValdMeta\", node=~\"$Node\"})", - "format": "time_series", - "hide": false, - "instant": false, - "refId": "A" - } - ], - "thresholds": "", - "timeFrom": null, - "timeShift": null, - "title": "Meta Pods", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 12 - }, - "hiddenSeries": false, - "id": 26, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "vald_goroutine_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Goroutine count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 12 - }, - "hiddenSeries": false, - "id": 22, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "vald_alloc_bytes{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Heap memory alloc", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": null, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 12 - }, - "hiddenSeries": false, - "id": 27, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(vald_gc_count{job=~\"$ReplicaSet\", node=~\"$Node\", pod=~\"$Pod\"}[1m])", - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "GC count increase rate [1m]", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "schemaVersion": 22, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info, job)", - "hide": 0, - "includeAll": true, - "label": null, - "multi": false, - "name": "ReplicaSet", - "options": [], - "query": "label_values(vald_app_version_info, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{job=~\"$ReplicaSet\"}, node)", - "hide": 0, - "includeAll": true, - "label": null, - "multi": false, - "name": "Node", - "options": [], - "query": "label_values(vald_app_version_info{job=~\"$ReplicaSet\"}, node)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{job=~\"$ReplicaSet\"}, pod)", - "hide": 0, - "includeAll": true, - "label": null, - "multi": false, - "name": "Pod", - "options": [], - "query": "label_values(vald_app_version_info{job=~\"$ReplicaSet\"}, pod)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "text": "vald-agent-ngt", - "value": "vald-agent-ngt" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{server_name=\"agent ngt\"}, job)", - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "ValdAgentNGT", - "options": [], - "query": "label_values(vald_app_version_info{server_name=\"agent ngt\"}, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "text": "vald-discoverer", - "value": "vald-discoverer" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{server_name=\"discoverer k8s\"}, job)", - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "ValdDiscovererK8s", - "options": [], - "query": "label_values(vald_app_version_info{server_name=\"discoverer k8s\"}, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "text": "vald-gateway", - "value": "vald-gateway" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{server_name=\"gateway vald\"}, job)", - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "ValdGateway", - "options": [], - "query": "label_values(vald_app_version_info{server_name=\"gateway vald\"}, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "text": "vald-manager-backup", - "value": "vald-manager-backup" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{server_name=~\"manager backup .*\"}, job)", - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "ValdManagerBackup", - "options": [], - "query": "label_values(vald_app_version_info{server_name=~\"manager backup .*\"}, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "text": "vald-manager-compressor", - "value": "vald-manager-compressor" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{server_name=\"manager compressor\"}, job)", - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "ValdManagerCompressor", - "options": [], - "query": "label_values(vald_app_version_info{server_name=\"manager compressor\"}, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "isNone": true, - "selected": false, - "text": "None", - "value": "" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{server_name=\"index manager\"}, job)", - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "ValdManagerIndex", - "options": [], - "query": "label_values(vald_app_version_info{server_name=\"index manager\"}, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "text": "vald-meta", - "value": "vald-meta" - }, - "datasource": "prometheus", - "definition": "label_values(vald_app_version_info{server_name=~\"meta .*\"}, job)", - "hide": 2, - "includeAll": false, - "label": null, - "multi": false, - "name": "ValdMeta", - "options": [], - "query": "label_values(vald_app_version_info{server_name=~\"meta .*\"}, job)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Vald Cluster Overview", - "uid": "ZQxyaOlWk", - "version": 1 -} diff --git a/k8s/metrics/grafana/deployment.yaml b/k8s/metrics/grafana/deployment.yaml index f601b137ff..cec3ab506d 100644 --- a/k8s/metrics/grafana/deployment.yaml +++ b/k8s/metrics/grafana/deployment.yaml @@ -38,8 +38,20 @@ spec: mountPath: /etc/grafana/provisioning/datasources - name: grafana-dashboard-provider mountPath: /etc/grafana/provisioning/dashboards - - name: grafana-dashboards - mountPath: /var/lib/grafana/dashboards + - name: grafana-dashboards-vald-cluster-overview + mountPath: /var/lib/grafana/dashboards-vald/00 + - name: grafana-dashboards-vald-agent + mountPath: /var/lib/grafana/dashboards-vald/01 + - name: grafana-dashboards-vald-discoverer + mountPath: /var/lib/grafana/dashboards-vald/02 + - name: grafana-dashboards-vald-backup-manager + mountPath: /var/lib/grafana/dashboards-vald/03 + - name: grafana-dashboards-vald-compressor + mountPath: /var/lib/grafana/dashboards-vald/04 + - name: grafana-dashboards-vald-index-manager + mountPath: /var/lib/grafana/dashboards-vald/05 + - name: grafana-dashboards-vald-meta + mountPath: /var/lib/grafana/dashboards-vald/06 volumes: - name: grafana-datasource-provider configMap: @@ -49,7 +61,31 @@ spec: configMap: defaultMode: 420 name: grafana-dashboard-provider - - name: grafana-dashboards + - name: grafana-dashboards-vald-cluster-overview configMap: defaultMode: 420 - name: grafana-dashboards + name: grafana-dashboards-vald-cluster-overview + - name: grafana-dashboards-vald-agent + configMap: + defaultMode: 420 + name: grafana-dashboards-vald-agent + - name: grafana-dashboards-vald-discoverer + configMap: + defaultMode: 420 + name: grafana-dashboards-vald-discoverer + - name: grafana-dashboards-vald-backup-manager + configMap: + defaultMode: 420 + name: grafana-dashboards-vald-backup-manager + - name: grafana-dashboards-vald-compressor + configMap: + defaultMode: 420 + name: grafana-dashboards-vald-compressor + - name: grafana-dashboards-vald-index-manager + configMap: + defaultMode: 420 + name: grafana-dashboards-vald-index-manager + - name: grafana-dashboards-vald-meta + configMap: + defaultMode: 420 + name: grafana-dashboards-vald-meta diff --git a/k8s/metrics/loki/loki.yaml b/k8s/metrics/loki/loki.yaml new file mode 100644 index 0000000000..ececb78da9 --- /dev/null +++ b/k8s/metrics/loki/loki.yaml @@ -0,0 +1,112 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: apps/v1 +kind: Deployment +metadata: + name: loki +spec: + replicas: 1 + selector: + matchLabels: + name: loki + template: + metadata: + labels: + name: loki + spec: + containers: + - args: + - -config.file=/etc/loki/loki.yaml + image: grafana/loki:2.0.0 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 45 + name: loki + ports: + - containerPort: 3100 + name: http-metrics + readinessProbe: + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 45 + volumeMounts: + - mountPath: /etc/loki + name: loki-config + volumes: + - name: loki-config + configMap: + name: loki +--- +apiVersion: v1 +kind: Service +metadata: + labels: + name: loki + name: loki +spec: + ports: + - name: loki-http-metrics + port: 3100 + targetPort: 3100 + selector: + name: loki +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: loki +data: + loki.yaml: | + auth_enabled: false + chunk_store_config: + max_look_back_period: 0 + ingester: + chunk_block_size: 262144 + chunk_idle_period: 3m + chunk_retain_period: 1m + lifecycler: + ring: + kvstore: + store: inmemory + replication_factor: 1 + limits_config: + enforce_metric_name: false + reject_old_samples: true + reject_old_samples_max_age: 168h + schema_config: + configs: + - from: "2018-04-15" + index: + period: 168h + prefix: index_ + object_store: filesystem + schema: v9 + store: boltdb + server: + http_listen_port: 3100 + storage_config: + boltdb: + directory: /loki/index + filesystem: + directory: /loki/chunks + table_manager: + retention_deletes_enabled: false + retention_period: 0 diff --git a/k8s/metrics/loki/promtail.yaml b/k8s/metrics/loki/promtail.yaml new file mode 100644 index 0000000000..81b4e18a8e --- /dev/null +++ b/k8s/metrics/loki/promtail.yaml @@ -0,0 +1,189 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: promtail +spec: + minReadySeconds: 10 + selector: + matchLabels: + name: promtail + template: + metadata: + labels: + name: promtail + spec: + containers: + - args: + - -config.file=/etc/promtail/promtail.yml + env: + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + image: grafana/promtail:1.5.0 + imagePullPolicy: IfNotPresent + name: promtail + ports: + - containerPort: 80 + name: http-metrics + readinessProbe: + httpGet: + path: /ready + port: 80 + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + privileged: true + runAsUser: 0 + volumeMounts: + - mountPath: /etc/promtail + name: promtail + - mountPath: /var/log + name: varlog + - mountPath: /var/lib/docker/containers + name: varlibdockercontainers + readOnly: true + serviceAccount: promtail + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - configMap: + name: promtail + name: promtail + - hostPath: + path: /var/log + name: varlog + - hostPath: + path: /var/lib/docker/containers + name: varlibdockercontainers + updateStrategy: + type: RollingUpdate +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: promtail +rules: + - apiGroups: + - "" + resources: + - nodes + - nodes/proxy + - services + - endpoints + - pods + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: promtail +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: promtail +subjects: + - kind: ServiceAccount + name: promtail + namespace: default +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: promtail +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: promtail +data: + promtail.yml: | + clients: + - external_labels: + cluster: vald + url: http://:@loki.default.svc.cluster.local:3100/loki/api/v1/push + scrape_configs: + - job_name: vald-service-pods + kubernetes_sd_configs: + - role: pod + pipeline_stages: + - cri: {} + - json: + expressions: + level: level + grpcKind: details.grpc.kind + grpcService: details.grpc.service + grpcMethod: details.grpc.method + latency: details.latency + traceID: details.traceID + - labels: + level: "" + grpcKind: "" + grpcMethod: "" + grpcService: "" + traceID: "" + - metrics: + grpc_latency: + type: Histogram + description: "gRPC latency" + source: latency + config: + buckets: [0,0.01,0.02,0.03,0.05,0.08,0.1,0.5,1,10,100,1000,10000] + relabel_configs: + - source_labels: + - __meta_kubernetes_pod_label_name + target_label: __service__ + - source_labels: + - __meta_kubernetes_pod_node_name + target_label: __host__ + - action: keep + regex: vald + source_labels: + - __meta_kubernetes_pod_label_app_kubernetes_io_name + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) + - action: replace + replacement: $1 + separator: / + source_labels: + - __meta_kubernetes_namespace + - __service__ + target_label: job + - action: replace + source_labels: + - __meta_kubernetes_namespace + target_label: namespace + - action: replace + source_labels: + - __meta_kubernetes_pod_name + target_label: instance + - action: replace + source_labels: + - __meta_kubernetes_pod_container_name + target_label: container_name + - replacement: /var/log/pods/*$1/*.log + separator: / + source_labels: + - __meta_kubernetes_pod_uid + - __meta_kubernetes_pod_container_name + target_label: __path__ diff --git a/k8s/metrics/prometheus/configmap.yaml b/k8s/metrics/prometheus/configmap.yaml index 248acd50e7..f5e2007a6e 100644 --- a/k8s/metrics/prometheus/configmap.yaml +++ b/k8s/metrics/prometheus/configmap.yaml @@ -25,25 +25,68 @@ data: scrape_interval: 5s evaluation_interval: 5s scrape_configs: - - job_name: 'vald-service-endpoints' + - job_name: vald-service-pods kubernetes_sd_configs: - - role: endpoints + - role: pod relabel_configs: - - source_labels: - - __meta_kubernetes_namespace - regex: kube-system - action: drop - - source_labels: - - __meta_kubernetes_namespace - - __meta_kubernetes_pod_container_port_number - regex: default;6061 - action: keep - - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - source_labels: - - __meta_kubernetes_service_name - target_label: job - - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node + - source_labels: + - __meta_kubernetes_pod_label_name + target_label: __service__ + - source_labels: + - __meta_kubernetes_pod_node_name + target_label: __host__ + - action: keep + regex: vald + source_labels: + - __meta_kubernetes_pod_label_app_kubernetes_io_name + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) + - action: replace + replacement: $1 + separator: / + source_labels: + - __meta_kubernetes_namespace + - __service__ + target_label: job + - action: replace + source_labels: + - __meta_kubernetes_namespace + target_label: namespace + - action: replace + source_labels: + - __meta_kubernetes_pod_name + target_label: instance + - action: replace + source_labels: + - __meta_kubernetes_pod_container_name + target_label: container_name + - job_name: cAdvisor + kubernetes_sd_configs: + - role: node + scheme: https + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + relabel_configs: + - target_label: __address__ + replacement: kubernetes.default.svc:443 + - source_labels: [__meta_kubernetes_node_name] + regex: (.+) + target_label: __metrics_path__ + replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor + - job_name: kubernetes-pods + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] + action: keep + regex: true + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] + action: replace + target_label: __metrics_path__ + regex: (.+) + - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] + action: replace + regex: (.+):(?:\d+);(\d+) + replacement: ${1}:${2} + target_label: __address__ diff --git a/k8s/metrics/prometheus/deployment.yaml b/k8s/metrics/prometheus/deployment.yaml index 935bc788af..c1f98f4558 100644 --- a/k8s/metrics/prometheus/deployment.yaml +++ b/k8s/metrics/prometheus/deployment.yaml @@ -34,6 +34,9 @@ spec: image: prom/prometheus args: - --config.file=/mnt/etc/prometheus.yaml + env: + - name: JAEGER_AGENT_PORT + value: "" ports: - containerPort: 9090 volumeMounts: diff --git a/k8s/metrics/tempo/jaeger-agent.yaml b/k8s/metrics/tempo/jaeger-agent.yaml new file mode 100644 index 0000000000..f35b7d7036 --- /dev/null +++ b/k8s/metrics/tempo/jaeger-agent.yaml @@ -0,0 +1,65 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: Service +metadata: + name: jaeger-agent +spec: + ports: + - name: jaeger-agent + port: 6831 + protocol: UDP + targetPort: 6831 + selector: + app: jaeger-agent + type: NodePort + externalTrafficPolicy: Local +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: jaeger-agent + labels: + app: jaeger-agent +spec: + selector: + matchLabels: + app: jaeger-agent + template: + metadata: + labels: + app: jaeger-agent + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5778" + spec: + containers: + - name: jaeger-agent + image: jaegertracing/jaeger-agent + ports: + - containerPort: 5775 + protocol: UDP + - containerPort: 6831 + protocol: UDP + - containerPort: 6832 + protocol: UDP + - containerPort: 5778 + protocol: TCP + env: + - name: REPORTER_GRPC_HOST_PORT + value: "tempo:14250" + dnsPolicy: ClusterFirstWithHostNet diff --git a/k8s/metrics/tempo/tempo.yaml b/k8s/metrics/tempo/tempo.yaml new file mode 100644 index 0000000000..55cc8d9e16 --- /dev/null +++ b/k8s/metrics/tempo/tempo.yaml @@ -0,0 +1,156 @@ +--- +# +# Copyright (C) 2019-2021 vdaas.org vald team +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +apiVersion: v1 +kind: Service +metadata: + labels: + name: tempo + name: tempo +spec: + ports: + - name: tempo-prom-metrics + port: 3100 + targetPort: 3100 + - name: tempo-grpc + port: 14250 + protocol: TCP + targetPort: 14250 + - name: tempo-query-jaeger-ui + port: 16686 + targetPort: 16686 + - name: http + port: 80 + targetPort: 16686 + - name: receiver + port: 6831 + protocol: UDP + targetPort: 6831 + selector: + name: tempo +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: tempo +spec: + minReadySeconds: 10 + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + name: tempo + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + template: + metadata: + labels: + name: tempo + spec: + containers: + - args: + - -config.file=/conf/tempo.yaml + - -mem-ballast-size-mbs=1024 + env: + - name: JAEGER_AGENT_PORT + value: "" + image: grafana/tempo:latest + imagePullPolicy: IfNotPresent + name: tempo + ports: + - containerPort: 3100 + name: prom-metrics + - containerPort: 14250 + name: jaeger-grpc + protocol: TCP + volumeMounts: + - mountPath: /conf + name: tempo-conf + - args: + - --query.base-path=/ + - --grpc-storage-plugin.configuration-file=/conf/tempo-query.yaml + env: + - name: JAEGER_AGENT_PORT + value: "" + image: grafana/tempo-query:latest + imagePullPolicy: IfNotPresent + name: tempo-query + ports: + - containerPort: 16686 + name: jaeger-ui + volumeMounts: + - mountPath: /conf + name: tempo-query-conf + volumes: + - configMap: + name: tempo + name: tempo-conf + - configMap: + name: tempo-query + name: tempo-query-conf +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: tempo +data: + tempo.yaml: | + auth_enabled: false + compactor: + compaction: + chunk_size_bytes: 1048576 # 1024 * 1024 + compaction_window: 1h + max_compaction_objects: 1000000 + block_retention: 1h + compacted_block_retention: 2m + distributor: + receivers: + jaeger: + protocols: + grpc: + endpoint: 0.0.0.0:14250 + ingester: + lifecycler: + address: 0.0.0.0 + ring: + kvstore: + store: inmemory + replication_factor: 1 + final_sleep: 0s + trace_idle_period: 10s + traces_per_block: 100 + max_block_duration: 1h + complete_block_timeout: 2m + server: + http_listen_port: 3100 + storage: + trace: + backend: local + blocklist_poll: 30s + local: + path: /tmp/tempo/traces + wal: + path: /var/tempo/wal +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: tempo-query +data: + tempo-query.yaml: | + backend: localhost:3100