# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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
#
#     http://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.

cluster:
  selector: ${SW_CLUSTER:standalone}
  standalone:
  zookeeper:
    hostPort: localhost:2181
    # Retry Policy
    baseSleepTimeMs: 1000 # initial amount of time to wait between retries
    maxRetries: 3 # max number of times to retry
  kubernetes:
    watchTimeoutSeconds: 60
    namespace: default
    labelSelector: app=collector,release=skywalking
    uidEnvName: SKYWALKING_COLLECTOR_UID

core:
  default:
    restHost: ${REST_HOST:0.0.0.0}
    restPort: ${REST_PORT:12800}
    restContextPath: ${REST_CONTEXT_PATH:/}
    gRPCHost: grpc.skywalking.apache.org
    gRPCPort: ${GRPC_PORT:11800}
    downsampling:
    - Hour
    - Day
    - Month
    # Set a timeout on metrics data. After the timeout has expired, the metrics data will automatically be deleted.
    recordDataTTL: ${RECORD_DATA_TTL:90} # Unit is minute
    minuteMetricsDataTTL: ${MINUTE_METRIC_DATA_TTL:90} # Unit is minute
    hourMetricsDataTTL: ${HOUR_METRIC_DATA_TTL:36} # Unit is hour
    dayMetricsDataTTL: ${DAY_METRIC_DATA_TTL:45} # Unit is day
    monthMetricsDataTTL: ${MONTH_METRIC_DATA_TTL:18} # Unit is month

storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    clusterNodes: ${ES_CLUSTER_ADDRESS:localhost:9200}
    indexShardsNumber: ${ES_INDEX_SHARDS_NUMBER:2}
    indexReplicasNumber: ${ES_INDEX_REPLICAS_NUMBER:0}
    # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the async bulk record data every ${SW_STORAGE_ES_BULK_ACTIONS} requests
    syncBulkActions: ${SW_STORAGE_ES_SYNC_BULK_ACTIONS:50000} # Execute the sync bulk metrics data every ${SW_STORAGE_ES_SYNC_BULK_ACTIONS} requests
    bulkSize: ${ES_BULK_SIZE:20} # flush the bulk every 20mb
    flushInterval: ${ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
    concurrentRequests: ${ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests

  h2:
    driver: org.h2.jdbcx.JdbcDataSource
    url: jdbc:h2:mem:skywalking-oap-db
    user: sa

receiver-register:
  default:

receiver-trace:
  default:

receiver-jvm:
  default:

receiver-profile:
  default:

service-mesh:
  default:

query:
  graphql:
    path: ${QUERY_GRAPHQL_PATH:/graphql}

alarm:
  default:
