# 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. server: port: 1157 spring: application: name: ${HOSTNAME:@hertzbeat@}${PID} profiles: active: prod ai: mcp: server: enabled: true stdio: false protocol: streamable streamable-http: mcp-endpoint: /api/mcp name: hertzbeat-mcp-server version: 1.0.0 type: SYNC mvc: static-path-pattern: /** jackson: default-property-inclusion: ALWAYS web: resources: static-locations: - classpath:/dist/ - classpath:../dist/ # need to disable spring boot mongodb auto config, or default mongodb connection tried and failed.. autoconfigure: exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration freemarker: enabled: false servlet: multipart: max-file-size: 100MB max-request-size: 100MB management: health: mail: enabled: off endpoints: web: exposure: include: - 'metrics' - 'health' - 'prometheus' enabled-by-default: on endpoint: prometheus: access: read_only metrics: tags: application: ${spring.application.name} environment: ${spring.profiles.active} prometheus: metrics: export: enabled: true sureness: container: jakarta_servlet auths: - digest - basic - jwt jwt: secret: 'CyaFv0bwq2Eik0jdrKUtsA6bx3sDJeFV643R LnfKefTjsIfJLBa2YkhEqEGtcHDTNe4CU6+9 8tVt4bisXQ13rbN0oxhUZR73M6EByXIO+SV5 dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp' --- spring: config: activate: on-profile: prod datasource: driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 url: jdbc:mysql://mysql:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false platform: mysql hikari: max-lifetime: 120000 jpa: show-sql: false database: mysql hibernate: ddl-auto: update properties: hibernate: format_sql: true dialect: org.hibernate.dialect.MySQLDialect flyway: enabled: true clean-disabled: true baseline-on-migrate: true baseline-version: 1 locations: - classpath:db/migration/mysql # Not Require, Please config if you need email notify mail: # Attention: this is mail server address. host: smtp.qq.com username: example@qq.com # Attention: this is not email account password, this requires an email authorization code password: xxqzvuqbnqvbbdac port: 465 default-encoding: UTF-8 properties: mail: smtp: socketFactoryClass: javax.net.ssl.SSLSocketFactory ssl: enable: true common: queue: # memory or kafka type: memory warehouse: store: # store history metrics data, enable only one below jpa: enabled: false expire-time: 1h iot-db: enabled: true host: iotdb rpc-port: 6667 username: root password: root query-timeout-in-ms: -1 # data expire time, unit:ms, default '7776000000'(90 days, -1:never expire) expire-time: '7776000000' # store real-time metrics data, enable only one below real-time: memory: enabled: true init-size: 16 redis: enabled: false # redis mode: single, sentinel, cluster. Default is single mode: single # separate each address with comma when using cluster mode, eg: 127.0.0.1:6379,127.0.0.1:6380 address: 127.0.0.1:6379 # enter master name when using sentinel mode masterName: mymaster password: 123456 # redis db index, default: DB0 db: 0 alerter: # custom console url console-url: https://console.tancloud.io # we work we-work-webhook-url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key= # ding ding talk ding-talk-webhook-url: https://oapi.dingtalk.com/robot/send?access_token= # fei shu fly book fly-book-webhook-url: https://open.feishu.cn/open-apis/bot/v2/hook/ # telegram telegram-webhook-url: https://api.telegram.org/bot%s/sendMessage # discord discord-webhook-url: https://discord.com/api/v9/channels/%s/messages # serverChan server-chan-webhook-url: https://sctapi.ftqq.com/%s.send # gotify gotify-webhook-url: http://127.0.0.1/message?token=%s # alert inhibit ttl unit ms, default 14400000(4 hours) inhibit: ttl: 14400000 sms: enable: false type: tencent tencent: secret-id: secret-key: app-id: sign-name: template-id: alibaba: access-key-id: access-key-secret: sign-name: template-code: unisms: # auth-mode: simple or hmac auth-mode: simple access-key-id: YOUR_ACCESS_KEY_ID # hmac mode need to fill in access-key-secret access-key-secret: YOUR_ACCESS_KEY_SECRET signature: YOUR_SMS_SIGNATURE template-id: YOUR_TEMPLATE_ID smslocal: api-key: YOUR_API_KEY_HERE aws: access-key-id: YOUR_ACCESS_KEY_ID access-key-secret: YOUR_ACCESS_KEY_SECRET region: AWS_REGION_FOR_END_USER_MESSAGING twilio: account-sid: YOUR_ACCOUNT_SID auth-token: YOUR_AUTH_TOKEN twilio-phone-number: YOUR_TWILIO_PHONE_NUMBER scheduler: server: enabled: true port: 1158 grafana: enabled: false url: http://127.0.0.1:3000 username: admin password: admin hertzbeat: collector: mysql: # MySQL-compatible query engine routing for MySQL, MariaDB, OceanBase, and TiDB SQL metrics. # auto : prefer JDBC only when mysql-connector-j is available from ext-lib, otherwise use the built-in query engine # jdbc : always use JDBC # r2dbc : always use the built-in query engine query-engine: ${HERTZBEAT_COLLECTOR_MYSQL_QUERY_ENGINE:auto} # Optional virtual-thread overrides. Remove this whole block to use built-in defaults. vthreads: enabled: true common: mode: UNBOUNDED_VT collector: mode: LIMIT_AND_REJECT manager: mode: LIMIT_AND_REJECT max-concurrent-jobs: 10 alerter: notify: mode: LIMIT_AND_REJECT max-concurrent-jobs: 64 periodic-max-concurrent-jobs: 10 log-worker: max-concurrent-jobs: 10 queue-capacity: 1000 reduce: max-concurrent-jobs: 2 window-evaluator: max-concurrent-jobs: 2 notify-max-concurrent-per-channel: 4 warehouse: mode: UNBOUNDED_VT async: enabled: true concurrency-limit: 256 reject-when-limit-reached: true task-termination-timeout: 5000