mirror of
https://github.com/dromara/hertzbeat.git
synced 2026-09-17 18:19:02 +00:00
Compare commits
21
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e20552c3b1 | ||
|
|
ddb1601290 | ||
|
|
8e9d3c09f3 | ||
|
|
ade04d2cf2 | ||
|
|
53555c88c7 | ||
|
|
03bf31269d | ||
|
|
5c329a8a66 | ||
|
|
dda9250243 | ||
|
|
65a97aed8f | ||
|
|
56528f4fc0 | ||
|
|
f218ba018a | ||
|
|
d6ce0c153a | ||
|
|
a1b23cacdc | ||
|
|
ed6214d0c1 | ||
|
|
9a3fc5911d | ||
|
|
d5d01459e7 | ||
|
|
d077c72211 | ||
|
|
11e3e4cc22 | ||
|
|
c24c6ab7aa | ||
|
|
a183176e83 | ||
|
|
a2e8739fec |
@@ -46,7 +46,7 @@ jobs:
|
||||
- uses: ./script/ci/github-actions/setup-deps
|
||||
|
||||
- name: Build with Maven
|
||||
run: mvn clean -B package -Prelease -Dmaven.test.skip=false --file pom.xml
|
||||
run: mvnd clean -B package -Prelease -Dmaven.test.skip=false --file pom.xml
|
||||
|
||||
- name: Upload coverage reports to Codecov
|
||||
uses: codecov/codecov-action@v4.0.1
|
||||
|
||||
+37
-33
@@ -25,6 +25,8 @@ import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Alert expression visitor implement
|
||||
@@ -32,7 +34,9 @@ import java.util.Map;
|
||||
public class AlertExpressionEvalVisitor extends AlertExpressionBaseVisitor<List<Map<String, Object>>> {
|
||||
|
||||
private static final String THRESHOLD = "__threshold__";
|
||||
private static final String NAME = "__name__";
|
||||
private static final String VALUE = "__value__";
|
||||
private static final String TIMESTAMP = "__timestamp__";
|
||||
|
||||
private final QueryExecutor executor;
|
||||
private final CommonTokenStream tokens;
|
||||
@@ -84,42 +88,26 @@ public class AlertExpressionEvalVisitor extends AlertExpressionBaseVisitor<List<
|
||||
public List<Map<String, Object>> visitAndExpr(AlertExpressionParser.AndExprContext ctx) {
|
||||
List<Map<String, Object>> leftOperand = visit(ctx.left);
|
||||
List<Map<String, Object>> rightOperand = visit(ctx.right);
|
||||
List<Map<String, Object>> results = new ArrayList<>();
|
||||
|
||||
Map<String, Object> leftMap = null;
|
||||
boolean leftMatch = false;
|
||||
Map<String, Object> rightMap = null;
|
||||
boolean rightMatch = false;
|
||||
for (Map<String, Object> item : leftOperand) {
|
||||
if (leftMap == null) {
|
||||
leftMap = item;
|
||||
// build a hash set of the right-side tag collection
|
||||
Set<String> rightLabelsSet = rightOperand.stream()
|
||||
.filter(item -> item.get(VALUE) != null)
|
||||
.map(this::labelKey)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
// iterate over the left side, O(1) match
|
||||
for (Map<String, Object> leftItem : leftOperand) {
|
||||
Object leftVal = leftItem.get(VALUE);
|
||||
if (leftVal == null) {
|
||||
continue;
|
||||
}
|
||||
if (item.get(VALUE) != null) {
|
||||
leftMap = item;
|
||||
leftMatch = true;
|
||||
break;
|
||||
String labelKey = labelKey(leftItem);
|
||||
if (rightLabelsSet.contains(labelKey)) {
|
||||
results.add(new HashMap<>(leftItem));
|
||||
}
|
||||
}
|
||||
for (Map<String, Object> item : rightOperand) {
|
||||
if (rightMap == null) {
|
||||
rightMap = item;
|
||||
}
|
||||
if (item.get(VALUE) != null) {
|
||||
rightMap = item;
|
||||
rightMatch = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (leftMatch && rightMatch) {
|
||||
rightMap.putAll(leftMap);
|
||||
return new LinkedList<>(List.of(rightMap));
|
||||
} else if (leftMap != null) {
|
||||
leftMap.put(VALUE, null);
|
||||
return new LinkedList<>(List.of(leftMap));
|
||||
} else if (rightMap != null) {
|
||||
rightMap.put(VALUE, null);
|
||||
return new LinkedList<>(List.of(rightMap));
|
||||
}
|
||||
return new LinkedList<>();
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -327,4 +315,20 @@ public class AlertExpressionEvalVisitor extends AlertExpressionBaseVisitor<List<
|
||||
String script = text.substring(1, text.length() - 1);
|
||||
return executor.execute(script);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate tag key (excluding `__name__` and `__value__` and `__timestamp__`)
|
||||
*/
|
||||
private String labelKey(Map<String, Object> labelsMap) {
|
||||
if (null == labelsMap || labelsMap.isEmpty()) {
|
||||
return "-";
|
||||
}
|
||||
String key = labelsMap.entrySet().stream()
|
||||
.filter(e -> !e.getKey().equals(VALUE) && !e.getKey().equals(NAME) && !e.getKey().equals(TIMESTAMP))
|
||||
.sorted(Map.Entry.comparingByKey())
|
||||
.map(e -> e.getKey() + "=" + (e.getValue() == null ? "" : e.getValue()))
|
||||
.collect(Collectors.joining(","));
|
||||
return key.isEmpty() ? "-" : key;
|
||||
}
|
||||
|
||||
}
|
||||
+111
-2
@@ -320,11 +320,11 @@ class AlertExpressionEvalVisitorTest {
|
||||
List.of(new HashMap<>(Map.of("__value__", 250.0))));
|
||||
when(mockExecutor.execute("select min(response_time) from api_metrics where endpoint = '/api/users'")).thenReturn(
|
||||
List.of(new HashMap<>(Map.of("__value__", 50.0))));
|
||||
|
||||
|
||||
List<Map<String, Object>> result = evaluate("(select max(response_time) from api_metrics where endpoint = '/api/users') > 200");
|
||||
assertEquals(1, result.size());
|
||||
assertEquals(250.0, result.get(0).get("__value__"));
|
||||
|
||||
|
||||
result = evaluate("(select min(response_time) from api_metrics where endpoint = '/api/users') < 100");
|
||||
assertEquals(1, result.size());
|
||||
assertEquals(50.0, result.get(0).get("__value__"));
|
||||
@@ -473,6 +473,115 @@ class AlertExpressionEvalVisitorTest {
|
||||
assertEquals(80, result.get(0).get("__value__"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testAndOpPromql() {
|
||||
String promql = "http_server_requests_seconds_count > 10 and http_server_requests_seconds_max > 5";
|
||||
|
||||
Map<String, Object> countValue1 = new HashMap<>() {
|
||||
{
|
||||
put("exception", "none");
|
||||
put("instance", "host.docker.internal:8989");
|
||||
put("__value__", 1307);
|
||||
put("method", "GET");
|
||||
put("__name__", "http_server_requests_seconds_count");
|
||||
put("__timestamp__", "1.750320922467E9");
|
||||
put("error", "none");
|
||||
put("job", "spring-boot-app");
|
||||
put("uri", "/actuator/prometheus");
|
||||
put("outcome", "SUCCESS");
|
||||
put("status", "200");
|
||||
}
|
||||
};
|
||||
|
||||
Map<String, Object> countValue2 = new HashMap<>() {
|
||||
{
|
||||
put("exception", "none");
|
||||
put("instance", "host.docker.internal:8989");
|
||||
put("__value__", 16);
|
||||
put("method", "GET");
|
||||
put("__name__", "http_server_requests_seconds_count");
|
||||
put("__timestamp__", "1.750320922467E9");
|
||||
put("error", "none");
|
||||
put("job", "spring-boot-app");
|
||||
put("uri", "/**");
|
||||
put("outcome", "SUCCESS");
|
||||
put("status", "200");
|
||||
}
|
||||
};
|
||||
|
||||
Map<String, Object> countValue3 = new HashMap<>() {
|
||||
{
|
||||
put("exception", "none");
|
||||
put("instance", "host.docker.internal:8989");
|
||||
put("__value__", 7);
|
||||
put("method", "GET");
|
||||
put("__name__", "http_server_requests_seconds_count");
|
||||
put("__timestamp__", "1.750320922467E9");
|
||||
put("error", "none");
|
||||
put("job", "spring-boot-app");
|
||||
put("uri", "/actuator/health");
|
||||
put("outcome", "SUCCESS");
|
||||
put("status", "200");
|
||||
}
|
||||
};
|
||||
|
||||
Map<String, Object> maxValue1 = new HashMap<>() {
|
||||
{
|
||||
put("exception", "none");
|
||||
put("instance", "host.docker.internal:8989");
|
||||
put("__value__", 10.007799125);
|
||||
put("method", "GET");
|
||||
put("__name__", "http_server_requests_seconds_max");
|
||||
put("__timestamp__", "1.750320922467E9");
|
||||
put("error", "none");
|
||||
put("job", "spring-boot-app");
|
||||
put("uri", "/actuator/prometheus");
|
||||
put("outcome", "SUCCESS");
|
||||
put("status", "200");
|
||||
}
|
||||
};
|
||||
|
||||
Map<String, Object> maxValue2 = new HashMap<>() {
|
||||
{
|
||||
put("exception", "none");
|
||||
put("instance", "host.docker.internal:8989");
|
||||
put("__value__", 10);
|
||||
put("method", "GET");
|
||||
put("__name__", "http_server_requests_seconds_count");
|
||||
put("__timestamp__", "1.750320922467E9");
|
||||
put("error", "none");
|
||||
put("job", "spring-boot-app");
|
||||
put("uri", "/**");
|
||||
put("outcome", "SUCCESS");
|
||||
put("status", "200");
|
||||
}
|
||||
};
|
||||
|
||||
Map<String, Object> maxValue3 = new HashMap<>() {
|
||||
{
|
||||
put("exception", "none");
|
||||
put("instance", "host.docker.internal:8989");
|
||||
put("__value__", 0);
|
||||
put("method", "GET");
|
||||
put("__name__", "http_server_requests_seconds_count");
|
||||
put("__timestamp__", "1.750320922467E9");
|
||||
put("error", "none");
|
||||
put("job", "spring-boot-app");
|
||||
put("uri", "/actuator/health");
|
||||
put("outcome", "SUCCESS");
|
||||
put("status", "200");
|
||||
}
|
||||
};
|
||||
|
||||
when(mockExecutor.execute("http_server_requests_seconds_count")).thenReturn(List.of(countValue1, countValue2, countValue3));
|
||||
when(mockExecutor.execute("http_server_requests_seconds_max")).thenReturn(List.of(maxValue1, maxValue2, maxValue3));
|
||||
List<Map<String, Object>> result = evaluate(promql);
|
||||
assertEquals(2, result.size());
|
||||
assertEquals(1307, result.get(0).get("__value__"));
|
||||
assertEquals(16, result.get(1).get("__value__"));
|
||||
}
|
||||
|
||||
|
||||
private List<Map<String, Object>> evaluate(String expression) {
|
||||
AlertExpressionLexer lexer = new AlertExpressionLexer(CharStreams.fromString(expression));
|
||||
CommonTokenStream tokens = new CommonTokenStream(lexer);
|
||||
|
||||
-2
@@ -23,7 +23,6 @@ import org.apache.hertzbeat.alert.reduce.AlarmCommonReduce;
|
||||
import org.apache.hertzbeat.alert.service.impl.AlibabaCloudSlsExternAlertService;
|
||||
import org.apache.hertzbeat.common.entity.alerter.SingleAlert;
|
||||
import org.apache.hertzbeat.common.util.JsonUtil;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
@@ -43,7 +42,6 @@ import static org.mockito.Mockito.verify;
|
||||
/**
|
||||
* unit test for {@link AlibabaCloudSlsExternAlertServiceTest }
|
||||
*/
|
||||
@Disabled
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class AlibabaCloudSlsExternAlertServiceTest {
|
||||
|
||||
|
||||
+23
-30
@@ -17,11 +17,6 @@
|
||||
|
||||
package org.apache.hertzbeat.alert.service;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Cache;
|
||||
import org.antlr.v4.runtime.CommonTokenStream;
|
||||
import org.antlr.v4.runtime.tree.ParseTree;
|
||||
@@ -29,17 +24,24 @@ import org.apache.hertzbeat.alert.service.impl.DataSourceServiceImpl;
|
||||
import org.apache.hertzbeat.warehouse.db.QueryExecutor;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
|
||||
/**
|
||||
* test case for {@link DataSourceService}
|
||||
*/
|
||||
class DataSourceServiceTest {
|
||||
|
||||
|
||||
private DataSourceServiceImpl dataSourceService;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
dataSourceService = new DataSourceServiceImpl();
|
||||
@@ -51,12 +53,12 @@ class DataSourceServiceTest {
|
||||
new HashMap<>(Map.of("__value__", 100.0, "timestamp", 1343554, "instance", "node1")),
|
||||
new HashMap<>(Map.of("__value__", 200.0, "timestamp", 1343555, "instance", "node2"))
|
||||
);
|
||||
|
||||
|
||||
QueryExecutor mockExecutor = Mockito.mock(QueryExecutor.class);
|
||||
Mockito.when(mockExecutor.support("promql")).thenReturn(true);
|
||||
Mockito.when(mockExecutor.execute(Mockito.anyString())).thenReturn(prometheusData);
|
||||
dataSourceService.setExecutors(List.of(mockExecutor));
|
||||
|
||||
|
||||
List<Map<String, Object>> result = dataSourceService.calculate("promql", "node_cpu_seconds_total > 150");
|
||||
assertEquals(2, result.size());
|
||||
assertNull(result.get(0).get("__value__"));
|
||||
@@ -296,45 +298,36 @@ class DataSourceServiceTest {
|
||||
@Test
|
||||
void calculate15() {
|
||||
List<Map<String, Object>> prometheusData1 = List.of(
|
||||
new HashMap<>(Map.of("__value__", 100.0, "timestamp", 1343554, "instance", "node1")),
|
||||
new HashMap<>(Map.of("__value__", 200.0, "timestamp", 1343555, "instance", "node2"))
|
||||
new HashMap<>(Map.of("__value__", 1))
|
||||
);
|
||||
List<Map<String, Object>> prometheusData2 = List.of(
|
||||
new HashMap<>(Map.of("__value__", 100.0, "timestamp", 1343554, "instance", "node1")),
|
||||
new HashMap<>(Map.of("__value__", 200.0, "timestamp", 1343555, "instance", "node2"))
|
||||
);
|
||||
|
||||
QueryExecutor mockExecutor = Mockito.mock(QueryExecutor.class);
|
||||
Mockito.when(mockExecutor.support("promql")).thenReturn(true);
|
||||
Mockito.when(mockExecutor.execute("node_cpu_seconds_total{mode=\"user\"}")).thenReturn(prometheusData1);
|
||||
Mockito.when(mockExecutor.execute("node_cpu_seconds_total{mode=\"idle\"}")).thenReturn(prometheusData2);
|
||||
Mockito.when(mockExecutor.execute("count(node_cpu_seconds_total{mode=\"user\"} > 250)")).thenReturn(prometheusData1);
|
||||
Mockito.when(mockExecutor.execute("count(node_cpu_seconds_total{mode=\"idle\"} < 220 )")).thenReturn(new ArrayList<>());
|
||||
dataSourceService.setExecutors(List.of(mockExecutor));
|
||||
|
||||
List<Map<String, Object>> result = dataSourceService.calculate("promql", "node_cpu_seconds_total{mode=\"user\"} > 250 and node_cpu_seconds_total{mode=\"idle\"} < 220");
|
||||
assertEquals(1, result.size());
|
||||
assertNull(result.get(0).get("__value__"));
|
||||
List<Map<String, Object>> result = dataSourceService.calculate("promql", "count(node_cpu_seconds_total{mode=\"user\"} > 250) > 0 and count(node_cpu_seconds_total{mode=\"idle\"} < 220 ) > 0");
|
||||
assertEquals(0, result.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
void calculate16() {
|
||||
List<Map<String, Object>> prometheusData1 = List.of(
|
||||
new HashMap<>(Map.of("__value__", 100.0, "timestamp", 1343554, "instance", "node1")),
|
||||
new HashMap<>(Map.of("__value__", 200.0, "timestamp", 1343555, "instance", "node2"))
|
||||
new HashMap<>(Map.of("__value__", 1))
|
||||
);
|
||||
List<Map<String, Object>> prometheusData2 = List.of(
|
||||
new HashMap<>(Map.of("__value__", 100.0, "timestamp", 1343554, "instance", "node1")),
|
||||
new HashMap<>(Map.of("__value__", 200.0, "timestamp", 1343555, "instance", "node2"))
|
||||
new HashMap<>(Map.of("__value__", 1))
|
||||
);
|
||||
|
||||
QueryExecutor mockExecutor = Mockito.mock(QueryExecutor.class);
|
||||
Mockito.when(mockExecutor.support("promql")).thenReturn(true);
|
||||
Mockito.when(mockExecutor.execute("node_cpu_seconds_total{mode=\"user\"}")).thenReturn(prometheusData1);
|
||||
Mockito.when(mockExecutor.execute("node_cpu_seconds_total{mode=\"idle\"}")).thenReturn(prometheusData2);
|
||||
Mockito.when(mockExecutor.execute("count(node_cpu_seconds_total{mode=\"user\"} > 250)")).thenReturn(prometheusData1);
|
||||
Mockito.when(mockExecutor.execute("count(node_cpu_seconds_total{mode=\"idle\"} < 220 )")).thenReturn(prometheusData2);
|
||||
dataSourceService.setExecutors(List.of(mockExecutor));
|
||||
|
||||
List<Map<String, Object>> result = dataSourceService.calculate("promql", "node_cpu_seconds_total{mode=\"user\"} > 50 and node_cpu_seconds_total{mode=\"idle\"} < 20");
|
||||
List<Map<String, Object>> result = dataSourceService.calculate("promql", "count(node_cpu_seconds_total{mode=\"user\"} > 250) > 0 and count(node_cpu_seconds_total{mode=\"idle\"} < 220 ) > 0");
|
||||
assertEquals(1, result.size());
|
||||
assertNull(result.get(0).get("__value__"));
|
||||
assertNotNull(result.get(0).get("__value__"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
-2
@@ -23,7 +23,6 @@ import org.apache.hertzbeat.alert.service.impl.HuaweiCloudExternAlertService;
|
||||
import org.apache.hertzbeat.common.entity.alerter.SingleAlert;
|
||||
import org.apache.hertzbeat.common.util.JsonUtil;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
@@ -39,7 +38,6 @@ import static org.mockito.Mockito.verify;
|
||||
/**
|
||||
* unit test for {@link AlibabaCloudSlsExternAlertServiceTest }
|
||||
*/
|
||||
@Disabled
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class HuaweiCloudExternAlertServiceTest {
|
||||
|
||||
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.hertzbeat.alert.service;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.hertzbeat.alert.config.SmsConfig;
|
||||
import org.apache.hertzbeat.alert.config.SmslocalSmsProperties;
|
||||
import org.apache.hertzbeat.base.dao.GeneralConfigDao;
|
||||
import org.apache.hertzbeat.common.constants.GeneralConfigTypeEnum;
|
||||
import org.apache.hertzbeat.common.entity.manager.GeneralConfig;
|
||||
import org.apache.hertzbeat.common.util.JsonUtil;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
|
||||
/**
|
||||
* unit test for {@link SmsClientFactory }
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class SmsClientFactoryTest {
|
||||
|
||||
|
||||
@Mock
|
||||
private GeneralConfigDao generalConfigDao;
|
||||
|
||||
@Mock
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
@Mock
|
||||
private SmsConfig yamlSmsConfig;
|
||||
|
||||
@InjectMocks
|
||||
private SmsClientFactory smsClientFactory;
|
||||
|
||||
|
||||
@Test
|
||||
void testloadDbConfig() throws JsonProcessingException {
|
||||
GeneralConfig generalConfig = new GeneralConfig();
|
||||
|
||||
SmsConfig smsConfig = new SmsConfig();
|
||||
smsConfig.setType("smslocal");
|
||||
smsConfig.setEnable(true);
|
||||
smsConfig.setSmslocal(new SmslocalSmsProperties("11"));
|
||||
|
||||
generalConfig.setContent(JsonUtil.toJson(smsConfig));
|
||||
when(objectMapper.readValue(generalConfig.getContent(), SmsConfig.class)).thenReturn(smsConfig);
|
||||
when(generalConfigDao.findByType(GeneralConfigTypeEnum.sms.name())).thenReturn(generalConfig);
|
||||
|
||||
assertNotNull(smsClientFactory.getSmsClient());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void testloadYamlConfig() {
|
||||
when(generalConfigDao.findByType(GeneralConfigTypeEnum.sms.name())).thenReturn(null);
|
||||
when(yamlSmsConfig.getType()).thenReturn("smslocal");
|
||||
when(yamlSmsConfig.isEnable()).thenReturn(true);
|
||||
when(yamlSmsConfig.getSmslocal()).thenReturn(new SmslocalSmsProperties("11"));
|
||||
assertNotNull(smsClientFactory.getSmsClient());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNull() {
|
||||
when(generalConfigDao.findByType(GeneralConfigTypeEnum.sms.name())).thenReturn(null);
|
||||
when(yamlSmsConfig.getType()).thenReturn("");
|
||||
assertNull(smsClientFactory.getSmsClient());
|
||||
}
|
||||
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.hertzbeat.alert.service.impl;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.hertzbeat.alert.config.SmslocalSmsProperties;
|
||||
import org.apache.hertzbeat.common.entity.alerter.GroupAlert;
|
||||
import org.apache.hertzbeat.common.entity.alerter.NoticeReceiver;
|
||||
import org.apache.hertzbeat.common.entity.alerter.SingleAlert;
|
||||
import org.apache.hertzbeat.common.support.exception.SendMessageException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* Test case for {@link SmsLocalSmsClientImpl}
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class SmsLocalSmsClientImplTest {
|
||||
|
||||
@Mock
|
||||
private SmslocalSmsProperties smslocalSmsProperties;
|
||||
|
||||
private SmsLocalSmsClientImpl smsLocalSmsClient;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
smsLocalSmsClient = new SmsLocalSmsClientImpl(smslocalSmsProperties);
|
||||
when(smslocalSmsProperties.getApiKey()).thenReturn("2");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSendMessage() {
|
||||
assertEquals("smslocal", smsLocalSmsClient.getType());
|
||||
assertTrue(smsLocalSmsClient.checkConfig());
|
||||
//
|
||||
NoticeReceiver noticeReceiver = new NoticeReceiver();
|
||||
noticeReceiver.setPhone("13888888888");
|
||||
|
||||
SingleAlert singleAlert = new SingleAlert();
|
||||
singleAlert.setContent("test");
|
||||
|
||||
GroupAlert groupAlert = new GroupAlert();
|
||||
groupAlert.setAlerts(Lists.newArrayList(singleAlert));
|
||||
|
||||
assertThrows(SendMessageException.class,
|
||||
() -> smsLocalSmsClient.sendMessage(noticeReceiver, null, groupAlert));
|
||||
}
|
||||
|
||||
}
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.hertzbeat.alert.service.impl;
|
||||
|
||||
import org.apache.hertzbeat.alert.config.UniSmsProperties;
|
||||
import org.apache.hertzbeat.common.entity.alerter.GroupAlert;
|
||||
import org.apache.hertzbeat.common.entity.alerter.NoticeReceiver;
|
||||
import org.apache.hertzbeat.common.support.exception.SendMessageException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
|
||||
/**
|
||||
* Test case for {@link UniSmsClientImpl}
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class UniSmsClientImplTest {
|
||||
|
||||
@Mock
|
||||
private UniSmsProperties uniSmsProperties;
|
||||
|
||||
private UniSmsClientImpl uniSmsClient;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
uniSmsClient = new UniSmsClientImpl(uniSmsProperties);
|
||||
when(uniSmsProperties.getSignature()).thenReturn("2");
|
||||
when(uniSmsProperties.getTemplateId()).thenReturn("any(String.class)");
|
||||
when(uniSmsProperties.getAuthMode()).thenReturn("hmac");
|
||||
when(uniSmsProperties.getAccessKeyId()).thenReturn("hmac");
|
||||
when(uniSmsProperties.getAccessKeySecret()).thenReturn("hmac");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSendMessage() {
|
||||
assertEquals("unisms", uniSmsClient.getType());
|
||||
assertTrue(uniSmsClient.checkConfig());
|
||||
//
|
||||
NoticeReceiver noticeReceiver = new NoticeReceiver();
|
||||
noticeReceiver.setPhone("13888888888");
|
||||
|
||||
Map<String, String> commonLabels = new HashMap<>();
|
||||
commonLabels.put("instance", "");
|
||||
commonLabels.put("priority", "unknown");
|
||||
|
||||
Map<String, String> commonAnnotations = new HashMap<>();
|
||||
commonAnnotations.put("test", "test");
|
||||
|
||||
GroupAlert groupAlert = new GroupAlert();
|
||||
groupAlert.setCommonLabels(commonLabels);
|
||||
groupAlert.setCommonAnnotations(commonAnnotations);
|
||||
|
||||
assertThrows(SendMessageException.class,
|
||||
() -> uniSmsClient.sendMessage(noticeReceiver, null, groupAlert));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.hertzbeat.alert.util;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
/**
|
||||
* Test case for {@link CryptoUtils}
|
||||
*/
|
||||
public class CryptoUtilsTest {
|
||||
|
||||
|
||||
@Test
|
||||
void testSha256Hex() {
|
||||
String sign = CryptoUtils.sha256Hex("Hello world.");
|
||||
assertEquals("aa3ec16e6acc809d8b2818662276256abfd2f1b441cb51574933f3d4bd115d11", sign);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testHmacSha256Base64Debug() {
|
||||
String signature = CryptoUtils.hmacSha256Base64("your-real-key", "your-real-data");
|
||||
assertEquals("8JrfX0v5Tt3s8PfI85o6jcf5XM3C+vLlMwvFp45LupU=", signature);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testHmacSha256Hex() {
|
||||
String signature = CryptoUtils.hmacSha256Hex("your-real-key", "your-real-data");;
|
||||
assertEquals("41878ccd7ecd795a2dd7ec39be7f33fed4be3ec75f5307689e39dd6f41fdbaac", signature);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ package org.apache.hertzbeat.alert.util;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import java.util.Optional;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -58,4 +59,13 @@ class DateUtilTest {
|
||||
actualTimestamp = DateUtil.getTimeStampFromFormat(date, format);
|
||||
assertFalse(actualTimestamp.isPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
void getZonedTimeStampFromFormat() {
|
||||
String dataStr = "2025/06/02 22:56:15 GMT+08:00";
|
||||
Long time = DateUtil.getZonedTimeStampFromFormat(dataStr, "yyyy/MM/dd HH:mm:ss 'GMT'XXX");
|
||||
assertNotNull(time);
|
||||
assertEquals(1748876175000L, time);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-3
@@ -166,7 +166,7 @@ public class HttpCollectImpl extends AbstractCollect {
|
||||
case DispatchConstants.PARSE_XML_PATH ->
|
||||
parseResponseByXmlPath(resp, metrics, builder, responseTime);
|
||||
case DispatchConstants.PARSE_WEBSITE ->
|
||||
parseResponseByWebsite(resp, metrics, metrics.getHttp(), builder, responseTime);
|
||||
parseResponseByWebsite(resp, metrics, metrics.getHttp(), builder, responseTime, statusCode);
|
||||
case DispatchConstants.PARSE_SITE_MAP ->
|
||||
parseResponseBySiteMap(resp, metrics.getAliasFields(), builder);
|
||||
case DispatchConstants.PARSE_HEADER ->
|
||||
@@ -237,11 +237,15 @@ public class HttpCollectImpl extends AbstractCollect {
|
||||
}
|
||||
|
||||
private void parseResponseByWebsite(String resp, Metrics metrics, HttpProtocol http,
|
||||
CollectRep.MetricsData.Builder builder, Long responseTime) {
|
||||
CollectRep.MetricsData.Builder builder, Long responseTime, int statusCode) {
|
||||
CollectRep.ValueRow.Builder valueRowBuilder = CollectRep.ValueRow.newBuilder();
|
||||
int keywordNum = CollectUtil.countMatchKeyword(resp, http.getKeyword());
|
||||
for (String alias : metrics.getAliasFields()) {
|
||||
addColumnForSummary(responseTime, valueRowBuilder, keywordNum, alias);
|
||||
if (CollectorConstants.STATUS_CODE.equalsIgnoreCase(alias)) {
|
||||
valueRowBuilder.addColumn(Integer.toString(statusCode));
|
||||
} else {
|
||||
addColumnForSummary(responseTime, valueRowBuilder, keywordNum, alias);
|
||||
}
|
||||
}
|
||||
builder.addValueRow(valueRowBuilder.build());
|
||||
}
|
||||
|
||||
+26
@@ -17,6 +17,7 @@
|
||||
|
||||
package org.apache.hertzbeat.collector.collect.http;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
@@ -25,6 +26,7 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.hertzbeat.collector.dispatch.DispatchConstants;
|
||||
import org.apache.hertzbeat.common.entity.job.Metrics;
|
||||
import org.apache.hertzbeat.common.entity.job.protocol.HttpProtocol;
|
||||
@@ -73,6 +75,30 @@ class HttpCollectImplTest {
|
||||
assert "http".equals(protocol);
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseResponseByWebsite() {
|
||||
HttpProtocol http = HttpProtocol.builder().build();
|
||||
http.setMethod("GET");
|
||||
http.setHost("http://127.0.0.1");
|
||||
http.setUrl("/");
|
||||
http.setPort("8428");
|
||||
http.setParseType("website");
|
||||
http.setEnableUrlEncoding("true");
|
||||
Metrics metrics = Metrics.builder()
|
||||
.http(http)
|
||||
.aliasFields(Lists.newArrayList("responseTime", "keyword", "statusCode"))
|
||||
.build();
|
||||
CollectRep.MetricsData.Builder builder = CollectRep.MetricsData.newBuilder();
|
||||
httpCollectImpl.collect(builder, metrics);
|
||||
|
||||
assertNotNull(builder.getValuesList());
|
||||
for (CollectRep.ValueRow row : builder.getValuesList()) {
|
||||
assertNotNull(row.getColumns(0));
|
||||
assertEquals(row.getColumns(1), "0");
|
||||
assertEquals(row.getColumns(2), "200");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseResponseByXmlPath() throws Exception {
|
||||
// Create a sample XML response
|
||||
|
||||
+1
-1
@@ -47,6 +47,6 @@ public interface CollectorConstants extends NetworkConstants {
|
||||
|
||||
String RESPONSE_TIME = "responseTime";
|
||||
|
||||
String STATUS_CODE = "StatusCode";
|
||||
String STATUS_CODE = "statusCode";
|
||||
|
||||
}
|
||||
+2
-2
@@ -81,12 +81,12 @@ public class GroupAlert {
|
||||
|
||||
@Schema(title = "Common Annotations", example = "{\"summary\": \"High CPU usage detected\", \"description\": \"CPU usage is back to normal for server1\"}")
|
||||
@Convert(converter = JsonMapAttributeConverter.class)
|
||||
@Column(length = 4096)
|
||||
@Column(columnDefinition = "TEXT")
|
||||
private Map<String, String> commonAnnotations;
|
||||
|
||||
@Schema(title = "Alert Fingerprints", example = "[\"dxsdfdsf\"]")
|
||||
@Convert(converter = JsonStringListAttributeConverter.class)
|
||||
@Column(length = 8192)
|
||||
@Column(columnDefinition = "TEXT")
|
||||
private List<String> alertFingerprints;
|
||||
|
||||
@Schema(title = "The creator of this record", example = "tom")
|
||||
|
||||
+3
@@ -120,6 +120,9 @@ public class BulletinServiceImpl implements BulletinService {
|
||||
List<BulletinMetricsData.Data> dataList = new ArrayList<>();
|
||||
for (Long monitorId : bulletin.getMonitorIds()) {
|
||||
Monitor monitor = monitorService.getMonitor(monitorId);
|
||||
if (null == monitor) {
|
||||
continue;
|
||||
}
|
||||
BulletinMetricsData.Data.DataBuilder dataBuilder = BulletinMetricsData.Data.builder()
|
||||
.monitorId(monitorId)
|
||||
.monitorName(monitor.getName())
|
||||
|
||||
@@ -62,14 +62,6 @@ sureness:
|
||||
8tVt4bisXQ13rbN0oxhUZR73M6EByXIO+SV5
|
||||
dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp'
|
||||
|
||||
otel:
|
||||
traces:
|
||||
exporter: none
|
||||
metrics:
|
||||
exporter: none
|
||||
logs:
|
||||
exporter: none
|
||||
|
||||
---
|
||||
spring:
|
||||
config:
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
-- 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.
|
||||
|
||||
-- ensure every sql can rerun without error
|
||||
|
||||
-- Modify common_annotations column to TEXT (H2 TEXT is equivalent to CLOB)
|
||||
ALTER TABLE HZB_ALERT_GROUP ALTER COLUMN common_annotations CLOB;
|
||||
|
||||
-- Modify alert_fingerprints column to TEXT (H2 TEXT is equivalent to CLOB)
|
||||
ALTER TABLE HZB_ALERT_GROUP ALTER COLUMN alert_fingerprints CLOB;
|
||||
@@ -0,0 +1,64 @@
|
||||
-- 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.
|
||||
|
||||
-- ensure every sql can rerun without error
|
||||
|
||||
-- Modify hzb_alert_group table columns to TEXT type to resolve MySQL row size limit issue
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE ModifyGroupAlertColumns()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
DECLARE col_exists INT;
|
||||
|
||||
-- Check if the table exists
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'HZB_ALERT_GROUP';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Check and modify common_annotations column to TEXT
|
||||
SELECT COUNT(*) INTO col_exists
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'HZB_ALERT_GROUP'
|
||||
AND COLUMN_NAME = 'common_annotations'
|
||||
AND DATA_TYPE != 'text';
|
||||
|
||||
IF col_exists = 1 THEN
|
||||
ALTER TABLE HZB_ALERT_GROUP MODIFY COLUMN common_annotations TEXT;
|
||||
END IF;
|
||||
|
||||
-- Check and modify alert_fingerprints column to TEXT
|
||||
SELECT COUNT(*) INTO col_exists
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'HZB_ALERT_GROUP'
|
||||
AND COLUMN_NAME = 'alert_fingerprints'
|
||||
AND DATA_TYPE != 'text';
|
||||
|
||||
IF col_exists = 1 THEN
|
||||
ALTER TABLE HZB_ALERT_GROUP MODIFY COLUMN alert_fingerprints TEXT;
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
CALL ModifyGroupAlertColumns();
|
||||
DROP PROCEDURE IF EXISTS ModifyGroupAlertColumns;
|
||||
COMMIT;
|
||||
@@ -0,0 +1,25 @@
|
||||
-- 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.
|
||||
|
||||
-- ensure every sql can rerun without error
|
||||
|
||||
-- Modify hzb_alert_group table columns to TEXT type to resolve row size limit issue
|
||||
|
||||
ALTER TABLE HZB_ALERT_GROUP ALTER COLUMN common_annotations TYPE TEXT;
|
||||
ALTER TABLE HZB_ALERT_GROUP ALTER COLUMN alert_fingerprints TYPE TEXT;
|
||||
|
||||
commit;
|
||||
@@ -453,7 +453,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 已分配内存
|
||||
en-US: Committed
|
||||
ja-JP: コミットメモリー
|
||||
ja-JP: コミットメモリ
|
||||
- field: init
|
||||
type: 0
|
||||
unit: MB
|
||||
|
||||
@@ -304,6 +304,12 @@ metrics:
|
||||
zh-CN: 关键词数量
|
||||
en-US: Keyword
|
||||
ja-JP: キーワード
|
||||
- field: statusCode
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 状态码
|
||||
en-US: Status Code
|
||||
ja-JP: 状態コード
|
||||
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
|
||||
protocol: http
|
||||
# the config content when protocol is http
|
||||
|
||||
@@ -73,7 +73,7 @@ params:
|
||||
name:
|
||||
zh-CN: 启用HTTPS
|
||||
en-US: SSL
|
||||
ja-JP: HTTPS利用
|
||||
ja-JP: SSL利用
|
||||
type: boolean
|
||||
required: false
|
||||
defaultValue: false
|
||||
|
||||
@@ -232,7 +232,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 状态
|
||||
en-US: state
|
||||
ja-JP: ステート
|
||||
ja-JP: 状態
|
||||
type: 1
|
||||
- field: status
|
||||
i18n:
|
||||
|
||||
@@ -21,11 +21,13 @@ app: flink_on_yarn
|
||||
name:
|
||||
zh-CN: Apache Flink On Yarn
|
||||
en-US: Apache Flink On Yarn
|
||||
ja-JP: Apache Flink On Yarn
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: Hertzbeat 对 Flink 流引擎 Yarn 模式的通用指标进行测量监控。<br>您可以点击 “<i>新建 Flink On Yarn</i>” 并进行配置,或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: Hertzbeat monitoring Flink Stream through general performance metric. You could click the "<i>New Flink Stream</i>" button and proceed with the configuration or import an existing setup through the "<i>More Actions</i>" menu.
|
||||
zh-TW: Hertzbeat 對 Flink 流引擎 Yarn 模式的通用指標進行測量監控。<br>您可以點擊 “<i>新建 Flink On Yarn</i>” 並進行配置,或者選擇“<i>更多操作</i>”,導入已有配置。
|
||||
ja-JP: HertzBeat は Flink 「Yarn モード」の一般的なメトリック監視します。<br>「<i>新規 Flink</i>」をクリックしてパラメタを設定した後、新規することができます。
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/flink_on_yarn
|
||||
en-US: https://hertzbeat.apache.org/docs/help/flink_on_yarn
|
||||
@@ -37,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -47,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: Yarn端口
|
||||
en-US: Yarn Port
|
||||
ja-JP: Yarnポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -61,6 +65,7 @@ params:
|
||||
name:
|
||||
zh-CN: 应用ID
|
||||
en-US: Application ID
|
||||
ja-JP: 応用ID
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# required-true or false
|
||||
@@ -71,6 +76,7 @@ params:
|
||||
name:
|
||||
zh-CN: 启动SSL
|
||||
en-US: SSL
|
||||
ja-JP: SSL利用
|
||||
# type-param field type(boolean mapping the html switch tag)
|
||||
type: boolean
|
||||
# required-true or false
|
||||
@@ -80,6 +86,7 @@ params:
|
||||
name:
|
||||
zh-CN: 认证方式
|
||||
en-US: Auth Type
|
||||
ja-JP: 認証方法
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: radio
|
||||
required: false
|
||||
@@ -94,6 +101,7 @@ params:
|
||||
name:
|
||||
zh-CN: 用户名
|
||||
en-US: Username
|
||||
ja-JP: ユーザー名
|
||||
type: text
|
||||
limit: 50
|
||||
required: false
|
||||
@@ -102,6 +110,7 @@ params:
|
||||
name:
|
||||
zh-CN: 密码
|
||||
en-US: Password
|
||||
ja-JP: パスワード
|
||||
type: password
|
||||
required: false
|
||||
hide: true
|
||||
@@ -111,6 +120,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: JobManager Metrics
|
||||
en-US: JobManager Metrics
|
||||
ja-JP: JobManagerメトリック
|
||||
priority: 0
|
||||
fields:
|
||||
- field: id
|
||||
@@ -119,11 +129,13 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 监控项
|
||||
en-US: key
|
||||
ja-JP: キー
|
||||
- field: value
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 值
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
protocol: http
|
||||
http:
|
||||
host: ^_^host^_^
|
||||
@@ -143,6 +155,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: JobManager Config
|
||||
en-US: JobManager Config
|
||||
ja-JP: JobManager設定
|
||||
priority: 1
|
||||
fields:
|
||||
- field: key
|
||||
@@ -150,11 +163,13 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 监控项
|
||||
en-US: key
|
||||
ja-JP: キー
|
||||
- field: value
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 值
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
protocol: http
|
||||
http:
|
||||
host: ^_^host^_^
|
||||
@@ -175,6 +190,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: TaskManager
|
||||
en-US: TaskManager
|
||||
ja-JP: TaskManager
|
||||
priority: 2
|
||||
fields:
|
||||
- field: id
|
||||
@@ -183,168 +199,198 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Container ID
|
||||
en-US: Container ID
|
||||
ja-JP: コンテナID
|
||||
- field: path
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: Path
|
||||
en-US: Path
|
||||
ja-JP: パス
|
||||
- field: dataPort
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: Data Port
|
||||
en-US: Data Port
|
||||
ja-JP: データポート
|
||||
- field: jmxPort
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: JMX Port
|
||||
en-US: JMX Port
|
||||
ja-JP: JMXポート
|
||||
- field: timeSinceLastHeartbeat
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Last Heartbeat
|
||||
en-US: Last Heartbeat
|
||||
ja-JP: 最後のハートビート
|
||||
- field: slotsNumber
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: All Slots
|
||||
en-US: All Slots
|
||||
ja-JP: スロット
|
||||
- field: freeSlots
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Free Slots
|
||||
en-US: Free Slots
|
||||
ja-JP: 利用可能なスロット
|
||||
- field: totalResourceCpuCores
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: totalResourceCpuCores
|
||||
en-US: totalResourceCpuCores
|
||||
ja-JP: totalResourceCpuCores
|
||||
- field: totalResourceTaskHeapMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: totalResourceTaskHeapMemory
|
||||
en-US: totalResourceTaskHeapMemory
|
||||
ja-JP: totalResourceTaskHeapMemory
|
||||
unit: MB
|
||||
- field: totalResourceManagedMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: totalResourceManagedMemory
|
||||
en-US: totalResourceManagedMemory
|
||||
ja-JP: totalResourceManagedMemory
|
||||
unit: MB
|
||||
- field: totalResourceNetworkMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: totalResourceNetworkMemory
|
||||
en-US: totalResourceNetworkMemory
|
||||
ja-JP: totalResourceNetworkMemory
|
||||
unit: MB
|
||||
- field: freeResourceCpuCores
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: freeResourceCpuCores
|
||||
en-US: freeResourceCpuCores
|
||||
ja-JP: freeResourceCpuCores
|
||||
- field: freeResourceTaskHeapMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: freeResourceTaskHeapMemory
|
||||
en-US: freeResourceTaskHeapMemory
|
||||
ja-JP: freeResourceTaskHeapMemory
|
||||
unit: MB
|
||||
- field: freeResourceTaskOffHeapMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: freeResourceTaskOffHeapMemory
|
||||
en-US: freeResourceTaskOffHeapMemory
|
||||
ja-JP: freeResourceTaskOffHeapMemory
|
||||
unit: MB
|
||||
- field: freeResourceManagedMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: freeResourceManagedMemory
|
||||
en-US: freeResourceManagedMemory
|
||||
ja-JP: freeResourceManagedMemory
|
||||
unit: MB
|
||||
- field: freeResourceNetworkMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: freeResourceNetworkMemory
|
||||
en-US: freeResourceNetworkMemory
|
||||
ja-JP: freeResourceNetworkMemory
|
||||
unit: MB
|
||||
- field: hardwareCpuCores
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: CPU Cores
|
||||
en-US: CPU Cores
|
||||
ja-JP: Cpuコア数
|
||||
- field: hardwarePhysicalMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Physical MEM
|
||||
en-US: Physical MEM
|
||||
ja-JP: 物理メモリ
|
||||
unit: GB
|
||||
- field: hardwareFreeMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM Heap Size
|
||||
en-US: JVM Heap Size
|
||||
ja-JP: Java仮想マシンのヒープサイズ
|
||||
unit: MB
|
||||
- field: hardwareManagedMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Flink Managed MEM
|
||||
en-US: Flink Managed MEM
|
||||
ja-JP: Flink管理メモリ
|
||||
unit: MB
|
||||
- field: memoryConfigurationFrameworkHeap
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Framework Heap
|
||||
en-US: Framework Heap
|
||||
ja-JP: フレームワークのヒープ
|
||||
unit: MB
|
||||
- field: memoryConfigurationTaskHeap
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Task Heap
|
||||
en-US: Task Heap
|
||||
ja-JP: タスクヒープ
|
||||
unit: MB
|
||||
- field: memoryConfigurationFrameworkOffHeap
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Framework Off-Heap
|
||||
en-US: Framework Off-Heap
|
||||
ja-JP: フレームワークのオフヒープ
|
||||
unit: MB
|
||||
- field: memoryConfigurationTaskOffHeap
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Task Off-Heap
|
||||
en-US: Task Off-Heap
|
||||
ja-JP: タスクオフヒープ
|
||||
unit: MB
|
||||
- field: memoryConfigurationNetworkMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Network
|
||||
en-US: Network
|
||||
ja-JP: ネットワーク
|
||||
unit: MB
|
||||
- field: memoryConfigurationManagedMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Managed Memory
|
||||
en-US: Managed Memory
|
||||
ja-JP: 管理メモリ
|
||||
unit: MB
|
||||
- field: memoryConfigurationJvmMetaspace
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM Metaspace
|
||||
en-US: JVM Metaspace
|
||||
ja-JP: Java仮想マシンのメタスペース
|
||||
unit: MB
|
||||
- field: memoryConfigurationJvmOverhead
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM Overhead
|
||||
en-US: JVM Overhead
|
||||
ja-JP: Java仮想マシンのオーバーヘッド
|
||||
- field: memoryConfigurationTotalFlinkMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: memoryConfigurationTotalFlinkMemory
|
||||
en-US: memoryConfigurationTotalFlinkMemory
|
||||
ja-JP: memoryConfigurationTotalFlinkMemory
|
||||
- field: memoryConfigurationTotalProcessMemory
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: memoryConfigurationTotalProcessMemory
|
||||
en-US: memoryConfigurationTotalProcessMemory
|
||||
ja-JP: memoryConfigurationTotalProcessMemory
|
||||
aliasFields:
|
||||
- $.id
|
||||
- $.path
|
||||
@@ -439,12 +485,14 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: TaskManager Metrics
|
||||
en-US: TaskManager Metrics
|
||||
ja-JP: TaskManagerメトリック
|
||||
priority: 3
|
||||
fields:
|
||||
- field: container_id
|
||||
i18n:
|
||||
zh-CN: Container ID
|
||||
en-US: Container ID
|
||||
ja-JP: コンテナID
|
||||
type: 1
|
||||
label: true
|
||||
- field: id
|
||||
@@ -452,12 +500,14 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 监控项
|
||||
en-US: key
|
||||
ja-JP: キー
|
||||
label: true
|
||||
- field: value
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 值
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
unit: MB
|
||||
units:
|
||||
- value=B->MB
|
||||
|
||||
@@ -21,11 +21,13 @@ app: freebsd
|
||||
name:
|
||||
zh-CN: FreeBSD操作系统
|
||||
en-US: OS FreeBSD
|
||||
ja-JP: OS FreeBSD
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: Hertzbeat 使用 <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-ssh'> SSH 协议</a> 对 FreeBSD 操作系统的通用性能指标 (系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等) 进行采集监控。<br>您可以点击“<i>新建 FreeBSD</i>”并配置HOST端口账户等相关参数进行添加,支持SSH账户密码或密钥认证。或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: HertzBeat uses <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-ssh'> SSH protocol</a> to monitors FreeBSD operating system's general performance metrics such as cpu, memory, disk, basic, interface, disk_free, top_process etc. <br>You can click the "<i>New FreeBSD</i>" and config host port and other related params to add, auth support password or secretKey. Or import an existing setup through the "<i>More Actions</i>" menu.
|
||||
zh-TW: Hertzbeat 使用 <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-ssh'> SSH 协议</a> 對 FreeBSD 操作系统的通用性能指標 (系統信息、CPU、內存、磁盤、網卡、文件系統、TOP資源進程等) 進行採集監控。<br>您可以點擊“<i>新建 FreeBSD</i>”並配置HOST端口賬戶等相關參數進行添加,支持SSH賬戶密碼或密鑰認證。或者選擇“<i>更多操作</i>”,導入已有配寘。
|
||||
ja-JP: Hertzbeat は <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-ssh'> SSHプロトコルを介して</a> Centosシステムの一般的なパフォーマンスのメトリック監視します。<br>「<i>新規 FreeBSD</i>」をクリックしてホストなどのパラメタを設定した後、新規することができます。SSHまたはキー認証をサポートします。
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn//docs/help/freebsd
|
||||
en-US: https://hertzbeat.apache.org/docs/help/freebsd
|
||||
@@ -37,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -47,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -61,6 +65,7 @@ params:
|
||||
name:
|
||||
zh-CN: 超时时间(ms)
|
||||
en-US: Timeout(ms)
|
||||
ja-JP: タイムアウト(ms)
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -75,6 +80,7 @@ params:
|
||||
name:
|
||||
zh-CN: 复用连接
|
||||
en-US: Reuse Connection
|
||||
ja-JP: コネクション再利用
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: boolean
|
||||
# required-true or false
|
||||
@@ -86,6 +92,7 @@ params:
|
||||
name:
|
||||
zh-CN: 使用代理
|
||||
en-US: Use Proxy Connection
|
||||
ja-JP: プロキシコネクション利用
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: boolean
|
||||
# required-true or false
|
||||
@@ -97,6 +104,7 @@ params:
|
||||
name:
|
||||
zh-CN: 用户名
|
||||
en-US: Username
|
||||
ja-JP: ユーザー名
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -109,6 +117,7 @@ params:
|
||||
name:
|
||||
zh-CN: 密码
|
||||
en-US: Password
|
||||
ja-JP: パスワード
|
||||
# type-param field type(most mapping the html input tag)
|
||||
type: password
|
||||
# required-true or false
|
||||
@@ -119,6 +128,7 @@ params:
|
||||
name:
|
||||
zh-CN: 私钥
|
||||
en-US: PrivateKey
|
||||
ja-JP: 秘密鍵
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: textarea
|
||||
placeholder: -----BEGIN RSA PRIVATE KEY-----
|
||||
@@ -132,6 +142,7 @@ params:
|
||||
name:
|
||||
zh-CN: 密钥短语
|
||||
en-US: PrivateKey PassPhrase
|
||||
ja-JP: 秘密鍵フレーズ
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: password
|
||||
# required-true or false
|
||||
@@ -144,6 +155,7 @@ params:
|
||||
name:
|
||||
zh-CN: 代理主机
|
||||
en-US: Proxy Host
|
||||
ja-JP: プロキシホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# required-true or false
|
||||
@@ -155,6 +167,7 @@ params:
|
||||
name:
|
||||
zh-CN: 代理端口
|
||||
en-US: Proxy Port
|
||||
ja-JP: プロキシポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -171,6 +184,7 @@ params:
|
||||
name:
|
||||
zh-CN: 代理用户名
|
||||
en-US: Proxy Username
|
||||
ja-JP: プロキシユーザー名
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -185,6 +199,7 @@ params:
|
||||
name:
|
||||
zh-CN: 代理密码
|
||||
en-US: Proxy Password
|
||||
ja-JP: プロキシパスワード
|
||||
# type-param field type(most mapping the html input tag)
|
||||
type: password
|
||||
# required-true or false
|
||||
@@ -197,6 +212,7 @@ params:
|
||||
name:
|
||||
zh-CN: 代理主机私钥
|
||||
en-US: proxyPrivateKey
|
||||
ja-JP: プロキシ秘密鍵
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: textarea
|
||||
placeholder: -----BEGIN RSA PRIVATE KEY-----
|
||||
@@ -211,6 +227,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 系统基本信息
|
||||
en-US: Basic Info
|
||||
ja-JP: システム基礎情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -223,16 +240,19 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 主机名称
|
||||
en-US: Host Name
|
||||
ja-JP: ホスト名
|
||||
- field: version
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 操作系统版本
|
||||
en-US: System Version
|
||||
ja-JP: システムバージョン
|
||||
- field: uptime
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 启动时间
|
||||
en-US: Uptime
|
||||
ja-JP: アップタイム
|
||||
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
|
||||
protocol: ssh
|
||||
# the config content when protocol is ssh
|
||||
@@ -272,6 +292,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: CPU 信息
|
||||
en-US: CPU Info
|
||||
ja-JP: CPU情報
|
||||
priority: 1
|
||||
fields:
|
||||
- field: info
|
||||
@@ -279,32 +300,38 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 型号
|
||||
en-US: Info
|
||||
ja-JP: バージョン
|
||||
- field: cores
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 核数
|
||||
en-US: Cores
|
||||
ja-JP: コア数
|
||||
- field: interrupt
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 中断数
|
||||
en-US: Interrupt
|
||||
ja-JP: 割り込み数
|
||||
- field: load
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 负载
|
||||
en-US: Load
|
||||
ja-JP: ロード
|
||||
- field: context_switch
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 上下文切换
|
||||
en-US: Context Switch
|
||||
ja-JP: コンテキストスイッチ
|
||||
- field: usage
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: 使用率
|
||||
en-US: Usage
|
||||
ja-JP: 使用率
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
# (可选)监控指标别名, 做为中间字段与采集数据字段和指标字段映射转换
|
||||
aliasFields:
|
||||
@@ -352,6 +379,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 内存信息
|
||||
en-US: Memory Info
|
||||
ja-JP: メモリ情報
|
||||
priority: 2
|
||||
fields:
|
||||
- field: physmem
|
||||
@@ -360,30 +388,35 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 物理内存
|
||||
en-US: Physics Memory
|
||||
ja-JP: 物理メモリ
|
||||
- field: usermem
|
||||
type: 0
|
||||
unit: Mb
|
||||
i18n:
|
||||
zh-CN: 用户内存
|
||||
en-US: User Program Memory
|
||||
ja-JP: ユーザープログラムメモリ
|
||||
- field: realmem
|
||||
type: 0
|
||||
unit: Mb
|
||||
i18n:
|
||||
zh-CN: 实际内存
|
||||
en-US: Real Memory
|
||||
ja-JP: 実際のメモリ
|
||||
- field: availmem
|
||||
type: 0
|
||||
unit: Mb
|
||||
i18n:
|
||||
zh-CN: 可用内存
|
||||
en-US: Available Memory
|
||||
ja-JP: 使用可能なメモリ
|
||||
- field: usage
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: 内存使用率
|
||||
en-US: Memory Usage
|
||||
ja-JP: メモリ使用率
|
||||
aliasFields:
|
||||
- physmem
|
||||
- usermem
|
||||
@@ -429,6 +462,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 文件系统
|
||||
en-US: Disk Free
|
||||
ja-JP: ディスク情報
|
||||
priority: 3
|
||||
fields:
|
||||
- field: filesystem
|
||||
@@ -436,30 +470,35 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 文件系统
|
||||
en-US: Filesystem
|
||||
ja-JP: ファイルシステム
|
||||
- field: used
|
||||
type: 0
|
||||
unit: Mb
|
||||
i18n:
|
||||
zh-CN: 已使用量
|
||||
en-US: Used
|
||||
ja-JP: 使用済み
|
||||
- field: available
|
||||
type: 0
|
||||
unit: Mb
|
||||
i18n:
|
||||
zh-CN: 可用量
|
||||
en-US: Available
|
||||
ja-JP: 利用可能
|
||||
- field: usage
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: 使用率
|
||||
en-US: Usage
|
||||
ja-JP: 使用率
|
||||
- field: mounted
|
||||
type: 1
|
||||
label: true
|
||||
i18n:
|
||||
zh-CN: 挂载点
|
||||
en-US: Mounted
|
||||
ja-JP: マウント
|
||||
protocol: ssh
|
||||
ssh:
|
||||
host: ^_^host^_^
|
||||
@@ -489,6 +528,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Top10 CPU 进程
|
||||
en-US: Top10 CPU Process
|
||||
ja-JP: トップ10 CPUプロセス
|
||||
priority: 4
|
||||
fields:
|
||||
- field: pid
|
||||
@@ -497,23 +537,27 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程ID
|
||||
en-US: PID
|
||||
ja-JP: プロセスID
|
||||
- field: cpu_usage
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: CPU占用率
|
||||
en-US: CPU Usage
|
||||
ja-JP: CPU使用率
|
||||
- field: mem_usage
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: 内存占用率
|
||||
en-US: Memory Usage
|
||||
ja-JP: メモリ使用率
|
||||
- field: command
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 执行命令
|
||||
en-US: Command
|
||||
ja-JP: 指令
|
||||
protocol: ssh
|
||||
ssh:
|
||||
host: ^_^host^_^
|
||||
@@ -543,6 +587,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Top10 内存进程
|
||||
en-US: Top10 Memory Process
|
||||
ja-JP: トップ10 メモリプロセス
|
||||
priority: 5
|
||||
fields:
|
||||
- field: pid
|
||||
@@ -551,23 +596,27 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程ID
|
||||
en-US: PID
|
||||
ja-JP: プロセスID
|
||||
- field: mem_usage
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: 内存占用率
|
||||
en-US: Memory Usage
|
||||
ja-JP: メモリ使用率
|
||||
- field: cpu_usage
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: CPU占用率
|
||||
en-US: CPU Usage
|
||||
ja-JP: CPU使用率
|
||||
- field: command
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 执行命令
|
||||
en-US: Command
|
||||
ja-JP: 指令
|
||||
protocol: ssh
|
||||
ssh:
|
||||
host: ^_^host^_^
|
||||
|
||||
@@ -21,11 +21,13 @@ app: ftp
|
||||
name:
|
||||
zh-CN: FTP服务器
|
||||
en-US: FTP Server
|
||||
ja-JP: FTPサーバー
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: Hertzbeat 对 FTP 服务器的通用指标进行测量监控。<br>您可以点击 “<i>新建 FTP服务器</i>” 并进行配置,或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: Hertzbeat monitoring FTP server through general performance metric. You could click the "<i>New FTP server</i>" button and proceed with the configuration or import an existing setup through the "<i>More Actions</i>" menu.
|
||||
zh-TW: Hertzbeat 對 FTP 伺服器的通用名額進行量測監控。<br>您可以點擊“<i>新建FTP伺服器</i>”並進行配寘,或者選擇“<i>更多操作</i>”,導入已有配寘。
|
||||
ja-JP: Hertzbeat は FTPサーバーの一般的なメトリック監視します。<br>「<i>新規 FTPサーバー</i>」をクリックしてパラメタを設定した後、新規することができます。
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/ftp
|
||||
en-US: https://hertzbeat.apache.org/docs/help/ftp
|
||||
@@ -37,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -47,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -61,6 +65,7 @@ params:
|
||||
name:
|
||||
zh-CN: 用户名
|
||||
en-US: Username
|
||||
ja-JP: ユーザー名
|
||||
type: text
|
||||
limit: 50
|
||||
required: false
|
||||
@@ -69,6 +74,7 @@ params:
|
||||
name:
|
||||
zh-CN: 用户密码
|
||||
en-US: Password
|
||||
ja-JP: パスワード
|
||||
# type-param field type(most mapping the html input tag)
|
||||
type: password
|
||||
required: false
|
||||
@@ -77,6 +83,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目录
|
||||
en-US: Direction
|
||||
ja-JP: ディレクション
|
||||
type: text
|
||||
limit: 100
|
||||
required: true
|
||||
@@ -84,6 +91,7 @@ params:
|
||||
name:
|
||||
zh-CN: 超时时间
|
||||
en-US: Timeout
|
||||
ja-JP: タイムアウト
|
||||
type: number
|
||||
range: '[0,100000]'
|
||||
required: true
|
||||
@@ -93,6 +101,7 @@ params:
|
||||
name:
|
||||
zh-CN: 启用SFTP
|
||||
en-US: SFTP
|
||||
ja-JP: SFTP利用
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: boolean
|
||||
# required-true or false
|
||||
@@ -104,6 +113,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 概要
|
||||
en-US: Basic
|
||||
ja-JP: 基礎情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -115,12 +125,14 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 活动状态
|
||||
en-US: Is Active
|
||||
ja-JP: 活動ステータス
|
||||
- field: responseTime
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 响应时间
|
||||
en-US: Response Time
|
||||
ja-JP: 応答時間
|
||||
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
|
||||
protocol: ftp
|
||||
# the config content when protocol is ftp
|
||||
|
||||
@@ -21,11 +21,13 @@ app: fullsite
|
||||
name:
|
||||
zh-CN: SiteMap全站
|
||||
en-US: SITE MAP
|
||||
ja-JP: SITE MAP
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: HertzBeat 对网站全部页面的 URL 路径、HTTP 状态码、响应时间及请求反馈进行监测。由于一个网站可能有多个不同服务提供的页面,系统将采集网站暴露的<a class='help_module_content' href='https://en.wikipedia.org/wiki/Site_map'>网站地图(SiteMap)</a>来监控全站。<span class='help_module_span'><br>⚠️注意:此功能需要您的网站支持 XML 和 TXT 格式的 SiteMap。</span>
|
||||
en-US: HertzBeat monitoring all pages of website by URL path, HTTP status code, response times and request feedback. Due to the possibility that a website may have multiple pages provided by different services, Hertzbeat will collect <a class='help_module_content' href='https://en.wikipedia.org/wiki/Site_map'>SiteMap</a> which exposed by the website to monitor the entire site. <span class='help_module_span'><br>⚠️Note:HertzBeat support SiteMap in XML or TXT format.</span>
|
||||
zh-TW: HertzBeat對網站全部頁面的URL路徑、HTTP狀態碼、回應時間及請求迴響進行監測。 由於一個網站可能有多個不同服務提供的頁面,系統將採集網站暴露的<a class='help_ module_ content' href='https://en.wikipedia.org/wiki/Site_map'>網站地圖(SiteMap)</a>來監控全站。<span class='help_ module_ span'> <br>⚠️注意:此功能需要您的網站支持XML和TXT格式的SiteMap。</span>
|
||||
ja-JP: HertzBeat はウェブサイトの全てのURL、HTTPステータスコード、応答時間などのメトリック監視します。ウェブサイトには、異なるサービスによって提供される複数のページが存在する可能性があるため、システムはウェブサイトによって公開される<a class='help_ module_ content' href='https://en.wikipedia.org/wiki/Site_map'>SiteMap</a>を収集して監視します。<span class='help_ module_ span'> <br>⚠️注意:この機能を使用するには、ウェブサイトがXMLおよびTXT形式のSiteMapをサポートしている必要があります。</span>
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/guide/
|
||||
en-US: https://hertzbeat.apache.org/docs/help/guide/
|
||||
@@ -37,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -47,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -58,6 +62,7 @@ params:
|
||||
name:
|
||||
zh-CN: 网站地图
|
||||
en-US: Site Map
|
||||
ja-JP: Site Map
|
||||
type: text
|
||||
limit: 200
|
||||
required: true
|
||||
@@ -66,6 +71,7 @@ params:
|
||||
name:
|
||||
zh-CN: 启用HTTPS
|
||||
en-US: HTTPS
|
||||
ja-JP: HTTPS利用
|
||||
# type-param field type(boolean mapping the html switch tag)
|
||||
type: boolean
|
||||
required: true
|
||||
@@ -77,6 +83,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 概要信息
|
||||
en-US: Summary
|
||||
ja-JP: 概要
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -89,22 +96,26 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: URL
|
||||
en-US: URL
|
||||
ja-JP: URL
|
||||
- field: statusCode
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 响应状态码
|
||||
en-US: Status Code
|
||||
ja-JP: ステータスコード
|
||||
- field: responseTime
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 响应时间
|
||||
en-US: Response Time
|
||||
ja-JP: 応答時間
|
||||
- field: errorMsg
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 错误信息
|
||||
en-US: Error Msg
|
||||
ja-JP: エラーメッセージ
|
||||
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
|
||||
protocol: http
|
||||
# the config content when protocol is http
|
||||
|
||||
@@ -21,11 +21,13 @@ app: greenplum
|
||||
name:
|
||||
zh-CN: GreenPlum 数据库
|
||||
en-US: GreenPlum DB
|
||||
ja-JP: GreenPlum データベース
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: HertzBeat 使用 <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-jdbc'> JDBC 协议</a> 通过配置 SQL 对 GreenPlum 数据库的通用性能指标 (basic、state、activity etc) 进行采集监控,支持版本为 GreenPlum 6.23.0+。<br>您可以点击“<i>新建 GreenPlum 数据库</i>”并进行配置,或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: HertzBeat uses <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-jdbc'> JDBC Protocol</a> to configure SQL for collecting general metrics of GreenPlum database (basic、state、activity etc). Supported version is GreenPlum 6.23.0+. <br>You can click "<i>New GreenPlum Database</i>" and configure it, or select "<i>More Action</i>" to import the existing configuration.
|
||||
zh-TW: HertzBeat 使用 <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-jdbc'> JDBC 協議</a> 通過配置 SQL 對 GreenPlum 數據庫的通用性能指標 (basic、state、activity etc)進行采集監控,支持版本爲 GreenPlum 6.23.0+。<br>您可以點擊“<i>新建 GreenPlum 數據庫</i>”並進行配置,或者選擇“<i>更多操作</i>”,導入已有配置。
|
||||
ja-JP: Hertzbeat は <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-jdbc'> JDBCプロトコルを介して</a> GreenPlum データベース(6.23.0+)の一般的なパフォーマンスのメトリック監視します。<br>「<i>新規 GreenPlum データベース</i>」をクリックしてパラメタを設定した後、新規することができます。
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/greenplum
|
||||
en-US: https://hertzbeat.apache.org/docs/help/greenplum
|
||||
@@ -37,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -47,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -59,6 +63,7 @@ params:
|
||||
name:
|
||||
zh-CN: 查询超时时间(ms)
|
||||
en-US: Query Timeout(ms)
|
||||
ja-JP: クエリタイムアウト(ms)
|
||||
type: number
|
||||
range: '[400,200000]'
|
||||
required: false
|
||||
@@ -68,6 +73,7 @@ params:
|
||||
name:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
type: text
|
||||
defaultValue: postgres
|
||||
required: false
|
||||
@@ -75,6 +81,7 @@ params:
|
||||
name:
|
||||
zh-CN: 用户名
|
||||
en-US: Username
|
||||
ja-JP: ユーザー名
|
||||
type: text
|
||||
limit: 50
|
||||
required: false
|
||||
@@ -82,12 +89,14 @@ params:
|
||||
name:
|
||||
zh-CN: 密码
|
||||
en-US: Password
|
||||
ja-JP: パスワード
|
||||
type: password
|
||||
required: false
|
||||
- field: url
|
||||
name:
|
||||
zh-CN: URL
|
||||
en-US: URL
|
||||
ja-JP: URL
|
||||
type: text
|
||||
required: false
|
||||
hide: true
|
||||
@@ -99,6 +108,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 基本信息
|
||||
en-US: Basic Info
|
||||
ja-JP: 基礎情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -111,26 +121,31 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 服务器版本
|
||||
en-US: Server Version
|
||||
ja-JP: サーバーのバージョン
|
||||
- field: port
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
- field: server_encoding
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 服务器编码
|
||||
en-US: Server Encoding
|
||||
ja-JP: サーバーのエンコード
|
||||
- field: data_directory
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 数据目录
|
||||
en-US: Data Directory
|
||||
ja-JP: データディレクトリ
|
||||
- field: max_connections
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最大连接数
|
||||
en-US: Max Connections
|
||||
ja-JP: 最大コネクション数
|
||||
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
|
||||
protocol: jdbc
|
||||
# the config content when protocol is jdbc
|
||||
@@ -155,6 +170,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 状态信息
|
||||
en-US: State Info
|
||||
ja-JP: 状態情報
|
||||
priority: 1
|
||||
fields:
|
||||
- field: db_name
|
||||
@@ -163,47 +179,55 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
- field: conflicts
|
||||
type: 0
|
||||
unit: times
|
||||
i18n:
|
||||
zh-CN: 冲突次数
|
||||
en-US: Conflicts
|
||||
ja-JP: コンフリクト回数
|
||||
- field: deadlocks
|
||||
type: 0
|
||||
unit: times
|
||||
i18n:
|
||||
zh-CN: 死锁次数
|
||||
en-US: Deadlocks
|
||||
ja-JP: デッドロック回数
|
||||
- field: blks_read
|
||||
type: 0
|
||||
unit: blocks per second
|
||||
i18n:
|
||||
zh-CN: 读取块
|
||||
en-US: Blocks Read
|
||||
ja-JP: 読み取られたブロック
|
||||
- field: blks_hit
|
||||
type: 0
|
||||
unit: blocks per second
|
||||
i18n:
|
||||
zh-CN: 命中块
|
||||
en-US: Blocks Hit
|
||||
ja-JP: ヒットブロック
|
||||
- field: blk_read_time
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 读取时间
|
||||
en-US: Read Time
|
||||
ja-JP: 読み取られタイム
|
||||
- field: blk_write_time
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 写入时间
|
||||
en-US: Write Time
|
||||
ja-JP: 書き込まれタイム
|
||||
- field: stats_reset
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 统计重置
|
||||
en-US: Stats Reset
|
||||
ja-JP: 統計リセット
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -221,6 +245,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 活动信息
|
||||
en-US: Activity Info
|
||||
ja-JP: 活動情報
|
||||
priority: 2
|
||||
fields:
|
||||
- field: running
|
||||
@@ -229,6 +254,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 运行中
|
||||
en-US: Running
|
||||
ja-JP: 実行中
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -246,6 +272,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 资源配置
|
||||
en-US: Resource Config
|
||||
ja-JP: リソース設定
|
||||
priority: 3
|
||||
fields:
|
||||
- field: work_mem
|
||||
@@ -254,34 +281,40 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 工作内存
|
||||
en-US: Work Memory
|
||||
ja-JP: ワークメモリ
|
||||
- field: shared_buffers
|
||||
type: 0
|
||||
unit: MB
|
||||
i18n:
|
||||
zh-CN: 共享缓冲区
|
||||
en-US: Shared Buffers
|
||||
ja-JP: 共有バッファ
|
||||
- field: autovacuum
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 自动清理
|
||||
en-US: Auto Vacuum
|
||||
ja-JP: オートバキューム
|
||||
- field: max_connections
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最大连接数
|
||||
en-US: Max Connections
|
||||
ja-JP: 最大コネクション数
|
||||
- field: effective_cache_size
|
||||
type: 0
|
||||
unit: MB
|
||||
i18n:
|
||||
zh-CN: 有效缓存大小
|
||||
en-US: Effective Cache Size
|
||||
ja-JP: キャッシュサイズ
|
||||
- field: wal_buffers
|
||||
type: 0
|
||||
unit: MB
|
||||
i18n:
|
||||
zh-CN: WAL缓冲区
|
||||
en-US: WAL Buffers
|
||||
ja-JP: WALバッファ
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -299,6 +332,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 连接信息
|
||||
en-US: Connection Info
|
||||
ja-JP: コネクション情報
|
||||
priority: 4
|
||||
fields:
|
||||
- field: active
|
||||
@@ -306,6 +340,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 活动连接
|
||||
en-US: Active Connection
|
||||
ja-JP: 活躍的なコネクション
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -323,6 +358,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 连接状态
|
||||
en-US: Connection State
|
||||
ja-JP: コネクションステート
|
||||
priority: 5
|
||||
fields:
|
||||
- field: state
|
||||
@@ -331,11 +367,13 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 状态
|
||||
en-US: State
|
||||
ja-JP: 状態
|
||||
- field: num
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: Num
|
||||
ja-JP: 数量
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -353,6 +391,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 连接数据库
|
||||
en-US: Connection Db
|
||||
ja-JP: コネクションデータベース
|
||||
priority: 6
|
||||
fields:
|
||||
- field: db_name
|
||||
@@ -361,11 +400,13 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
- field: active
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 活动连接
|
||||
en-US: Active Connection
|
||||
ja-JP: 活躍的なコネクション
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -383,6 +424,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 元组信息
|
||||
en-US: Tuple Info
|
||||
ja-JP: 組情報
|
||||
priority: 7
|
||||
fields:
|
||||
- field: fetched
|
||||
@@ -390,26 +432,31 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 获取次数
|
||||
en-US: Fetched
|
||||
ja-JP: フェッチ回数
|
||||
- field: returned
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 返回次数
|
||||
en-US: Returned
|
||||
ja-JP: 戻る回数
|
||||
- field: inserted
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 插入次数
|
||||
en-US: Inserted
|
||||
ja-JP: インサート回数
|
||||
- field: updated
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 更新次数
|
||||
en-US: Updated
|
||||
ja-JP: 更新回数
|
||||
- field: deleted
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 删除次数
|
||||
en-US: Deleted
|
||||
ja-JP: 削除回数
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -427,6 +474,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 临时文件
|
||||
en-US: Temp File
|
||||
ja-JP: 一時ファイル
|
||||
priority: 8
|
||||
fields:
|
||||
- field: db_name
|
||||
@@ -435,17 +483,20 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
- field: num
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 次数
|
||||
en-US: Num
|
||||
ja-JP: 数量
|
||||
- field: size
|
||||
type: 0
|
||||
unit: B
|
||||
i18n:
|
||||
zh-CN: 大小
|
||||
en-US: Size
|
||||
ja-JP: サイズ
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -463,6 +514,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 锁信息
|
||||
en-US: Lock Info
|
||||
ja-JP: ロック情報
|
||||
priority: 9
|
||||
fields:
|
||||
- field: db_name
|
||||
@@ -471,18 +523,21 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
- field: conflicts
|
||||
type: 0
|
||||
unit: times
|
||||
i18n:
|
||||
zh-CN: 冲突次数
|
||||
en-US: Conflicts
|
||||
ja-JP: コンフリクト回数
|
||||
- field: deadlocks
|
||||
type: 0
|
||||
unit: times
|
||||
i18n:
|
||||
zh-CN: 死锁次数
|
||||
en-US: Deadlocks
|
||||
ja-JP: デッドロック回数
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -500,6 +555,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 慢查询
|
||||
en-US: Slow Sql
|
||||
ja-JP: スロークエリ
|
||||
priority: 10
|
||||
fields:
|
||||
- field: sql_text
|
||||
@@ -508,28 +564,33 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: SQL语句
|
||||
en-US: SQL Text
|
||||
ja-JP: SQL
|
||||
- field: calls
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 调用次数
|
||||
en-US: Calls
|
||||
ja-JP: コール回数
|
||||
- field: rows
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 行数
|
||||
en-US: Rows
|
||||
ja-JP: 行
|
||||
- field: avg_time
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 平均时间
|
||||
en-US: Avg Time
|
||||
ja-JP: 平均時間
|
||||
- field: total_time
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 总时间
|
||||
en-US: Total Time
|
||||
ja-JP: 合計時間
|
||||
aliasFields:
|
||||
- query
|
||||
- calls
|
||||
@@ -557,6 +618,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 事务信息
|
||||
en-US: Transaction Info
|
||||
ja-JP: トランザクション情報
|
||||
priority: 11
|
||||
fields:
|
||||
- field: db_name
|
||||
@@ -565,18 +627,21 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
- field: commits
|
||||
type: 0
|
||||
unit: times
|
||||
i18n:
|
||||
zh-CN: 提交次数
|
||||
en-US: Commits
|
||||
ja-JP: コミット回数
|
||||
- field: rollbacks
|
||||
type: 0
|
||||
unit: times
|
||||
i18n:
|
||||
zh-CN: 回滚次数
|
||||
en-US: Rollbacks
|
||||
ja-JP: ロールバック回数
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -594,6 +659,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 冲突信息
|
||||
en-US: Conflicts Info
|
||||
ja-JP: コンフリクト情報
|
||||
priority: 12
|
||||
fields:
|
||||
- field: db_name
|
||||
@@ -602,31 +668,37 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
- field: tablespace
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 表空间
|
||||
en-US: Tablespace
|
||||
ja-JP: 表領域
|
||||
- field: lock
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 锁
|
||||
en-US: Lock
|
||||
ja-JP: ロック
|
||||
- field: snapshot
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 快照
|
||||
en-US: Snapshot
|
||||
ja-JP: スナップショット
|
||||
- field: bufferpin
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 缓冲区
|
||||
en-US: Bufferpin
|
||||
ja-JP: バッファ
|
||||
- field: deadlock
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 死锁
|
||||
en-US: Deadlock
|
||||
ja-JP: デッドロック
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -644,6 +716,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 缓存命中率
|
||||
en-US: Cache Hit Ratio
|
||||
ja-JP: キャッシュ命中率
|
||||
priority: 13
|
||||
fields:
|
||||
- field: db_name
|
||||
@@ -652,12 +725,14 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 数据库名称
|
||||
en-US: Database Name
|
||||
ja-JP: データベース名
|
||||
- field: ratio
|
||||
type: 0
|
||||
unit: '%'
|
||||
i18n:
|
||||
zh-CN: 命中率
|
||||
en-US: Hit Ratio
|
||||
ja-JP: 命中率
|
||||
aliasFields:
|
||||
- blks_hit
|
||||
- blks_read
|
||||
@@ -681,6 +756,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Checkpoint信息
|
||||
en-US: Checkpoint Info
|
||||
ja-JP: チェックポイント情報
|
||||
priority: 14
|
||||
fields:
|
||||
- field: checkpoint_sync_time
|
||||
@@ -689,12 +765,14 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Checkpoint同步时间
|
||||
en-US: Checkpoint Sync Time
|
||||
ja-JP: チェックポイント同期時間
|
||||
- field: checkpoint_write_time
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: Checkpoint写入时间
|
||||
en-US: Checkpoint Write Time
|
||||
ja-JP: Checkpoint書き込まれた時間
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
@@ -712,6 +790,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Buffer信息
|
||||
en-US: Buffer Info
|
||||
ja-JP: バッファ情報
|
||||
priority: 15
|
||||
fields:
|
||||
- field: allocated
|
||||
@@ -719,26 +798,31 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 已分配
|
||||
en-US: Allocated
|
||||
ja-JP: 割り当てバッファ
|
||||
- field: fsync_calls_by_backend
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 后端进程直接执行的文件同步调用次数
|
||||
en-US: Fsync Calls By Backend
|
||||
ja-JP: バックエンド同期コール回数
|
||||
- field: written_directly_by_backend
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 后台写入到数据文件
|
||||
en-US: Written Directly By Backend
|
||||
ja-JP: バックエンドによる直接書き込まれたファイル
|
||||
- field: written_by_background_writer
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 后台写入
|
||||
en-US: Written By Background Writer
|
||||
ja-JP: バックグラウンドライターに書き込まれた
|
||||
- field: written_during_checkpoints
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 检查点期间写入
|
||||
en-US: Written During Checkpoints
|
||||
ja-JP: チェックポイント中の書き込み
|
||||
protocol: jdbc
|
||||
jdbc:
|
||||
host: ^_^host^_^
|
||||
|
||||
@@ -14,51 +14,45 @@
|
||||
# limitations under the License.
|
||||
|
||||
# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring
|
||||
# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等
|
||||
category: bigdata
|
||||
# The monitoring type eg: linux windows tomcat mysql aws...
|
||||
# 监控类型 eg: linux windows tomcat mysql aws...
|
||||
app: greptime
|
||||
# The monitoring i18n name
|
||||
# 监控类型国际化名称
|
||||
name:
|
||||
zh-CN: GreptimeDB
|
||||
en-US: GreptimeDB
|
||||
ja-JP: GreptimeDB
|
||||
# The description and help of this monitoring type
|
||||
# 监控类型的帮助描述信息
|
||||
help:
|
||||
zh-CN: HertzBeat 对 GreptimeDB 时序数据库进行监控。<br><span class='help_module_span'><a class='help_module_content' https://docs.greptime.com/user-guide/operations/monitoring'>点击查看开启步骤</a>。</span>
|
||||
en-US: HertzBeat monitors the GreptimeDB time series database. <br><span class='help_module_span'><a class='help_module_content' https://docs.greptime.com/user-guide/operations/monitoring'>Click to view the activation steps</a>. </span>
|
||||
zh-TW: HertzBeat 對 GreptimeDB 時序資料庫進行監控。<br><span class='help_module_span'><a class='help_module_content' https://docs.greptime.com/user-guide/operations/monitoring'>點擊查看開啓步驟</a>。</span>
|
||||
ja-JP: HertzBeat は GreptimeDB 時系列データベースを監視します。<br><span class='help_module_span'><a class='help_module_content' https://docs.greptime.com/user-guide/operations/monitoring'>クリックしてガイドを見ます</a>。</span>
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.com/zh-cn/docs/help/greptimedb
|
||||
en-US: https://hertzbeat.com/docs/help/greptimedb
|
||||
# 监控所需输入参数定义(根据定义渲染页面UI)
|
||||
# Input params define for monitoring(render web ui by the definition)
|
||||
params:
|
||||
# field-param field key
|
||||
# field-变量字段标识符
|
||||
- field: host
|
||||
# name-param field display i18n name
|
||||
# name-参数字段显示名称
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
# type-字段类型,样式(大部分映射input标签type属性)
|
||||
type: host
|
||||
# required-true or false
|
||||
# required-是否是必输项 true-必填 false-可选
|
||||
required: true
|
||||
- field: port
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
# type-字段类型,样式(大部分映射input标签type属性)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
# 当type为number时,用range表示范围
|
||||
range: '[0,65535]'
|
||||
# default value
|
||||
defaultValue: 4000
|
||||
@@ -67,28 +61,28 @@ params:
|
||||
name:
|
||||
zh-CN: 查询超时时间
|
||||
en-US: Query Timeout
|
||||
ja-JP: クエリタイムアウト
|
||||
type: number
|
||||
required: false
|
||||
# hide param-true or false
|
||||
# 是否隐藏字段 true or false
|
||||
hide: true
|
||||
defaultValue: 6000
|
||||
|
||||
# collect metrics config list
|
||||
# 采集指标配置列表
|
||||
metrics:
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_app_version
|
||||
i18n:
|
||||
zh-CN: greptime 应用版本
|
||||
en-US: greptime_app_version
|
||||
ja-JP: greptime応用バージョン
|
||||
priority: 0
|
||||
fields:
|
||||
- field: short_version
|
||||
i18n:
|
||||
zh-CN: 版本
|
||||
en-US: version
|
||||
ja-JP: バージョン
|
||||
type: 1
|
||||
label: true
|
||||
protocol: http
|
||||
@@ -101,17 +95,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_catalog_schema_count
|
||||
i18n:
|
||||
zh-CN: 目录 模式 数量
|
||||
en-US: greptime_catalog_schema_count
|
||||
ja-JP: greptime_catalog_schema_count
|
||||
priority: 1
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: count
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
calculates:
|
||||
- name=.name
|
||||
@@ -125,23 +120,25 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_meta_cache_container_cache_get
|
||||
i18n:
|
||||
zh-CN: 缓存容器缓存获取
|
||||
en-US: greptime_meta_cache_container_cache_get
|
||||
ja-JP: キャッシュゲット
|
||||
priority: 2
|
||||
fields:
|
||||
- field: name
|
||||
i18n:
|
||||
zh-CN: 名称
|
||||
en-US: name
|
||||
ja-JP: キー
|
||||
type: 1
|
||||
label: true
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 指标值
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -153,23 +150,25 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_meta_cache_container_cache_miss
|
||||
i18n:
|
||||
zh-CN: 缓存容器缓存未命中
|
||||
en-US: greptime_meta_cache_container_cache_miss
|
||||
ja-JP: キャッシュミス
|
||||
priority: 3
|
||||
fields:
|
||||
- field: name
|
||||
i18n:
|
||||
zh-CN: 名称
|
||||
en-US: name
|
||||
ja-JP: キー
|
||||
type: 1
|
||||
label: true
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 指标值
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -181,23 +180,25 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_mito_region_count
|
||||
i18n:
|
||||
zh-CN: mito 引擎区域数量
|
||||
en-US: greptime_mito_region_count
|
||||
ja-JP: mitoエンジンのリージョン数量
|
||||
priority: 4
|
||||
fields:
|
||||
- field: worker
|
||||
i18n:
|
||||
zh-CN: 工作线程
|
||||
en-US: worker
|
||||
ja-JP: ワーカースレッド
|
||||
type: 1
|
||||
label: true
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: count
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -209,23 +210,25 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_mito_write_stall_total
|
||||
i18n:
|
||||
zh-CN: mito 引擎写入延迟总数
|
||||
en-US: greptime_mito_write_stall_total
|
||||
ja-JP: mitoエンジンの書き込み遅延の合計
|
||||
priority: 5
|
||||
fields:
|
||||
- field: worker
|
||||
i18n:
|
||||
zh-CN: 工作线程
|
||||
en-US: worker
|
||||
ja-JP: ワーカースレッド
|
||||
type: 1
|
||||
label: true
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: total
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -237,17 +240,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_meta_create_catalog_counter
|
||||
i18n:
|
||||
zh-CN: 创建目录计数器
|
||||
en-US: greptime_meta_create_catalog_counter
|
||||
ja-JP: 目録カウンター
|
||||
priority: 6
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 指标值
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -259,22 +263,24 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_runtime_threads_alive
|
||||
i18n:
|
||||
zh-CN: 运行时线程存活
|
||||
en-US: greptime_runtime_threads_alive
|
||||
ja-JP: ランタイムのアライブスレッド
|
||||
priority: 7
|
||||
fields:
|
||||
- field: thread_name
|
||||
i18n:
|
||||
zh-CN: 线程名称
|
||||
en-US: thread_name
|
||||
ja-JP: スレッド名
|
||||
type: 1
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -286,22 +292,24 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_runtime_threads_idle
|
||||
i18n:
|
||||
zh-CN: 运行时线程空闲
|
||||
en-US: greptime_runtime_threads_idle
|
||||
ja-JP: ランタイムのidleスレッド
|
||||
priority: 8
|
||||
fields:
|
||||
- field: thread_name
|
||||
i18n:
|
||||
zh-CN: 线程名称
|
||||
en-US: thread_name
|
||||
ja-JP: スレッド名
|
||||
type: 1
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -313,32 +321,36 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_servers_http_requests_total
|
||||
i18n:
|
||||
zh-CN: greptime 服务 HTTP 请求总数
|
||||
en-US: greptime_servers_http_requests_total
|
||||
ja-JP: HTTPリクエストの合計
|
||||
priority: 9
|
||||
fields:
|
||||
- field: code
|
||||
i18n:
|
||||
zh-CN: code
|
||||
en-US: code
|
||||
ja-JP: コード
|
||||
type: 1
|
||||
- field: method
|
||||
i18n:
|
||||
zh-CN: method
|
||||
en-US: method
|
||||
ja-JP: メソッド
|
||||
type: 1
|
||||
- field: path
|
||||
i18n:
|
||||
zh-CN: path
|
||||
en-US: path
|
||||
ja-JP: パス
|
||||
type: 1
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -350,17 +362,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_servers_mysql_connection_count
|
||||
i18n:
|
||||
zh-CN: greptime 服务 MySQL 连接数
|
||||
en-US: greptime_servers_mysql_connection_count
|
||||
ja-JP: MySQLのコネクション数
|
||||
priority: 10
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -372,17 +385,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: greptime_servers_postgres_connection_count
|
||||
i18n:
|
||||
zh-CN: greptime 服务 Postgres 连接数
|
||||
en-US: greptime_servers_postgres_connection_count
|
||||
ja-JP: Postgresのコネクション数
|
||||
priority: 11
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -394,17 +408,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: process_cpu_seconds_total
|
||||
i18n:
|
||||
zh-CN: 进程 CPU 时间总数
|
||||
en-US: process_cpu_seconds_total
|
||||
ja-JP: CPU時間合計
|
||||
priority: 12
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -416,17 +431,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: process_max_fds
|
||||
i18n:
|
||||
zh-CN: 进程最大文件描述符
|
||||
en-US: process_max_fds
|
||||
ja-JP: プロセスの最大ファイル記述子
|
||||
priority: 13
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -438,17 +454,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: process_open_fds
|
||||
i18n:
|
||||
zh-CN: 进程打开文件描述符
|
||||
en-US: process_open_fds
|
||||
ja-JP: プロセスのオープン中ファイル記述子
|
||||
priority: 14
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -460,17 +477,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: process_resident_memory_bytes
|
||||
i18n:
|
||||
zh-CN: 进程常驻内存字节
|
||||
en-US: process_resident_memory_bytes
|
||||
ja-JP: プロセスの常駐メモリバイト
|
||||
priority: 15
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -482,17 +500,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: process_start_time_seconds
|
||||
i18n:
|
||||
zh-CN: 进程启动时间(秒)
|
||||
en-US: process_start_time_seconds
|
||||
ja-JP: プロセスのアップタイム(秒)
|
||||
priority: 16
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -504,17 +523,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: process_threads
|
||||
i18n:
|
||||
zh-CN: 进程线程
|
||||
en-US: process_threads
|
||||
ja-JP: プロセススレッド
|
||||
priority: 17
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -526,17 +546,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: process_virtual_memory_bytes
|
||||
i18n:
|
||||
zh-CN: 进程虚拟内存字节
|
||||
en-US: process_virtual_memory_bytes
|
||||
ja-JP: プロセスの仮想メモリバイト
|
||||
priority: 18
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: value
|
||||
en-US: value
|
||||
ja-JP: 値
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -548,22 +569,24 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: raft_engine_log_entry_count
|
||||
i18n:
|
||||
zh-CN: raft 引擎日志条目数量
|
||||
en-US: raft_engine_log_entry_count
|
||||
ja-JP: raftエンジンのログエントリー数
|
||||
priority: 19
|
||||
fields:
|
||||
- field: type
|
||||
i18n:
|
||||
zh-CN: 类型
|
||||
en-US: type
|
||||
ja-JP: タイプ
|
||||
type: 1
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: count
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -575,22 +598,24 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: raft_engine_log_file_count
|
||||
i18n:
|
||||
zh-CN: raft 引擎日志文件数量
|
||||
en-US: raft_engine_log_file_count
|
||||
ja-JP: raftエンジンのログファイル数
|
||||
priority: 20
|
||||
fields:
|
||||
- field: type
|
||||
i18n:
|
||||
zh-CN: 类型
|
||||
en-US: type
|
||||
ja-JP: タイプ
|
||||
type: 1
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: count
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -602,17 +627,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: raft_engine_memory_usage
|
||||
i18n:
|
||||
zh-CN: raft 引擎内存占用
|
||||
en-US: raft_engine_memory_usage
|
||||
ja-JP: raftエンジンのメモリ使用率
|
||||
priority: 21
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 占用
|
||||
en-US: total
|
||||
ja-JP: 使用率
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -624,22 +650,24 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: raft_engine_recycled_file_count
|
||||
i18n:
|
||||
zh-CN: raft 引擎回收文件数量
|
||||
en-US: raft_engine_recycled_file_count
|
||||
ja-JP: raftエンジンのリサイクルファイル数
|
||||
priority: 22
|
||||
fields:
|
||||
- field: type
|
||||
i18n:
|
||||
zh-CN: 类型
|
||||
en-US: type
|
||||
ja-JP: タイプ
|
||||
type: 1
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: count
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -651,17 +679,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: sys_jemalloc_allocated
|
||||
i18n:
|
||||
zh-CN: jemalloc 分配
|
||||
en-US: sys_jemalloc_allocated
|
||||
ja-JP: jemallocの割り当て
|
||||
priority: 23
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: value
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
@@ -673,17 +702,18 @@ metrics:
|
||||
parseType: prometheus
|
||||
|
||||
# metrics - cluster_node_status
|
||||
# 监控指标 - cluster_node_status
|
||||
- name: sys_jemalloc_resident
|
||||
i18n:
|
||||
zh-CN: jemalloc 常驻
|
||||
en-US: sys_jemalloc_resident
|
||||
ja-JP: jemallocの常駐
|
||||
priority: 24
|
||||
fields:
|
||||
- field: value
|
||||
i18n:
|
||||
zh-CN: 数量
|
||||
en-US: value
|
||||
ja-JP: 数量
|
||||
type: 1
|
||||
protocol: http
|
||||
http:
|
||||
|
||||
@@ -21,11 +21,13 @@ app: h3c_switch
|
||||
name:
|
||||
zh-CN: 华三通用交换机
|
||||
en-US: H3C Switch
|
||||
ja-JP: H3Cスイッチングハブ
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: Hertzbeat 使用 <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-snmp'> SNMP 协议</a> 对 华三交换机 的通用指标(可用性,系统信息,端口流量等)进行采集监控。<br>您可以点击 “<i>新建 华三通用交换机</i>” 并进行配置SNMP相关参数添加,或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: HertzBeat uses <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-snmp'> SNMP Protocol</a> to monitoring H3C Switch general performance metrics. <br>You can click the "<i>New H3C Switch</i>" button and config snmp params to add monitor or import an existing setup through the "<i>More Actions</i>" menu.
|
||||
zh-TW: Hertzbeat 使用 <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-snmp'> SNMP 協議</a> 對 華三交換機 的通用指標(可用性,系統信息,端口流量等)進行采集監控。<br>您可以點擊 “<i>新建 華三通用交換機</i>” 並進行配置SNMP相關參數添加,或者選擇“<i>更多操作</i>”,導入已有配置。
|
||||
ja-JP: Hertzbeat は <a class='help_module_content' href='https://hertzbeat.apache.org/docs/advanced/extend-snmp'> SNMP プロトコルを介して</a> H3Cスイッチングハブの一般的なメトリック監視します。<br>「<i>新規 H3Cスイッチングハブ</i>」をクリックしてSNMPなどのパラメタを設定した後、新規することができます。
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/h3c_switch
|
||||
en-US: https://hertzbeat.apache.org/docs/help/h3c_switch
|
||||
@@ -37,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -47,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -61,6 +65,7 @@ params:
|
||||
name:
|
||||
zh-CN: SNMP 版本
|
||||
en-US: SNMP Version
|
||||
ja-JP: SNMPバージョン
|
||||
# type-param field type(radio mapping the html radio tag)
|
||||
type: radio
|
||||
# required-true or false
|
||||
@@ -79,6 +84,7 @@ params:
|
||||
name:
|
||||
zh-CN: SNMP 团体字
|
||||
en-US: SNMP Community
|
||||
ja-JP: SNMPコミュニティ
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -98,6 +104,7 @@ params:
|
||||
name:
|
||||
zh-CN: SNMP username
|
||||
en-US: SNMP username
|
||||
ja-JP: SNMPユーザー名
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -116,6 +123,7 @@ params:
|
||||
name:
|
||||
zh-CN: SNMP contextName
|
||||
en-US: SNMP contextName
|
||||
ja-JP: SNMPコンテキスト名
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -134,6 +142,7 @@ params:
|
||||
name:
|
||||
zh-CN: SNMP authPassword
|
||||
en-US: SNMP authPassword
|
||||
ja-JP: SNMP認証パスワード
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -152,6 +161,7 @@ params:
|
||||
name:
|
||||
zh-CN: authPassword 加密方式
|
||||
en-US: authPassword Encryption
|
||||
ja-JP: 認証暗号
|
||||
# type-param field type(radio mapping the html radio tag)
|
||||
type: radio
|
||||
# required-true or false
|
||||
@@ -172,6 +182,7 @@ params:
|
||||
name:
|
||||
zh-CN: SNMP privPassphrase
|
||||
en-US: SNMP privPassphrase
|
||||
ja-JP: SNMPパスワードフレーズ
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -190,6 +201,7 @@ params:
|
||||
name:
|
||||
zh-CN: privPassword 加密方式
|
||||
en-US: privPassword Encryption
|
||||
ja-JP: パスワードの暗号
|
||||
# type-param field type(radio mapping the html radio tag)
|
||||
type: radio
|
||||
# required-true or false
|
||||
@@ -210,6 +222,7 @@ params:
|
||||
name:
|
||||
zh-CN: 超时时间(ms)
|
||||
en-US: Timeout(ms)
|
||||
ja-JP: タイムアウト(ms)
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -227,6 +240,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 系统信息
|
||||
en-US: System Info
|
||||
ja-JP: システム情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -238,32 +252,38 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 主机名称
|
||||
en-US: Host Name
|
||||
ja-JP: ホスト名
|
||||
- field: descr
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 描述信息
|
||||
en-US: Description
|
||||
ja-JP: 説明
|
||||
- field: uptime
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 运行时长
|
||||
en-US: Uptime
|
||||
ja-JP: アップタイム
|
||||
- field: location
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 位置
|
||||
en-US: Location
|
||||
ja-JP: 位置
|
||||
- field: contact
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 联系人
|
||||
en-US: Contact
|
||||
ja-JP: 連絡先
|
||||
- field: responseTime
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 响应时间
|
||||
en-US: Response Time
|
||||
ja-JP: 応答時間
|
||||
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
|
||||
protocol: snmp
|
||||
# the config content when protocol is snmp
|
||||
@@ -305,6 +325,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 接口详情
|
||||
en-US: Interfaces Detail
|
||||
ja-JP: ネットワークカード詳細
|
||||
priority: 1
|
||||
fields:
|
||||
- field: index
|
||||
@@ -312,66 +333,78 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 编号
|
||||
en-US: Index
|
||||
ja-JP: 番号
|
||||
- field: descr
|
||||
type: 1
|
||||
label: true
|
||||
i18n:
|
||||
zh-CN: 接口名称
|
||||
en-US: Interface Name
|
||||
ja-JP: ネットワークカード名
|
||||
- field: mtu
|
||||
type: 0
|
||||
unit: 'byte'
|
||||
i18n:
|
||||
zh-CN: MTU
|
||||
en-US: MTU
|
||||
ja-JP: MTU
|
||||
- field: speed
|
||||
type: 0
|
||||
unit: 'MB/s'
|
||||
i18n:
|
||||
zh-CN: 接口速率
|
||||
en-US: Interface Speed
|
||||
ja-JP: ネットワークカード速度
|
||||
- field: in_octets
|
||||
type: 0
|
||||
unit: 'MByte'
|
||||
i18n:
|
||||
zh-CN: 入流量
|
||||
en-US: In Octets
|
||||
ja-JP: 受信バイト数
|
||||
- field: in_discards
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 入丢包数
|
||||
en-US: In Discards
|
||||
ja-JP: 受信パケットロス数
|
||||
- field: in_errors
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 入错包数
|
||||
en-US: In Errors
|
||||
ja-JP: 受信異常パケット数
|
||||
- field: out_octets
|
||||
type: 0
|
||||
unit: 'MByte'
|
||||
i18n:
|
||||
zh-CN: 出流量
|
||||
en-US: Out Octets
|
||||
ja-JP: 送信バイト数
|
||||
- field: out_discards
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 出丢包数
|
||||
en-US: Out Discards
|
||||
ja-JP: 送信パケットロス数
|
||||
- field: out_errors
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 出错包数
|
||||
en-US: Out Errors
|
||||
ja-JP: 送信異常パケット数
|
||||
- field: admin_status
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 配置状态
|
||||
en-US: Config Status
|
||||
ja-JP: 設定ステータス
|
||||
- field: oper_status
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 当前状态
|
||||
en-US: Current Status
|
||||
ja-JP: ステータス
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- ifIndex
|
||||
|
||||
@@ -21,11 +21,13 @@ app: hadoop
|
||||
name:
|
||||
zh-CN: Apache Hadoop
|
||||
en-US: Apache Hadoop
|
||||
ja-JP: Apache Hadoop
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: HertzBeat 使用<a class='help_module_content' href='https://baijiahao.baidu.com/s?id=1605937053950156833&wfr=spider&for=pc'> JMX 协议</a>对 Hadoop 的 JVM 虚拟机的通用性能指标(memory pool,限JDK8及以下的code cache、class loading、thread)进行采集监控。<br><span class='help_module_span'>⚠️注意:您需要在 Hadoop 应用开启 JMX 服务, <a class='help_module_content' href='https://hertzbeat.apache.org/zh-cn/docs/help/hadoop#hadoop%E5%BA%94%E7%94%A8%E5%BC%80%E5%90%AFjmx%E5%8D%8F%E8%AE%AE%E6%AD%A5%E9%AA%A4'>点击查看开启步骤</a>。</span>
|
||||
en-US: "HertzBeat monitors general performance metrics(memory pool, class loading, thread) of Hadoop VMware through <a class='help_module_content' href='https://zh.wikipedia.org/JMX'>JMX protocol</a>. <br><span class='help_module_span'>⚠️Note: You should enable the JMX service in Hadoop application, and the metric of code cache is only available to JDK8 and below.<a class='help_module_content' href='https://hertzbeat.apache.org/docs/help/hadoop#hadoop%E5%BA%94%E7%94%A8%E5%BC%80%E5%90%AFjmx%E5%8D%8F%E8%AE%AE%E6%AD%A5%E9%AA%A4'>Click here to view the specific steps.</a></span>"
|
||||
zh-TW: HertzBeat使用<a class='help_ module_ content' href='https://baijiahao.baidu.com/s?id=1605937053950156833&wfr=spider&for=pc'> JMX協定</a>對Hadoop的JVM虛擬機器的通用性能指標(memory pool,限JDK8及以下的code cache、class loading、thread)進行採集監控。<br><span class='help_ module_ span'> ⚠️ ️注意:您需要在Hadoop應用開啟JMX服務,<a class='help_ module_ content' href='https://hertzbeat.apache.org/zh-cn/docs/help/hadoop#hadoop%E5%BA%94%E7%94%A8%E5%BC%80%E5%90%AFjmx%E5%8D%8F%E8%AE%AE%E6%AD%A5%E9%AA%A4'>點擊查看開啟步驟</a>。</span>
|
||||
ja-JP: HertzBeatは <a class='help_module_content' href='https://baijiahao.baidu.com/s?id=1605937053950156833&wfr=spider&for=pc'> JMXプロトコルを介して</a> HadoopのJava仮想マシンの一般的なパフォーマンスのメトリックを監視します。<br><span class='help_module_span'> ⚠️注意:Hadoop で JMX サービスを有効にする必要があります。<a class='help_module_content' href=' https://hertzbeat.apache.org/zh-cn/docs/help/hadoop#hadoop%E5%BA%94%E7%94%A8%E5%BC%80%E5%90%AFjmx%E5%8D%8F%E8%AE%AE%E6%AD%A5%E9%AA%A4'>クリックしてガイドを見ます</a>。</span>
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hadoop/
|
||||
en-US: https://hertzbeat.apache.org/docs/help/hadoop/
|
||||
@@ -37,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -47,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -61,6 +65,7 @@ params:
|
||||
name:
|
||||
zh-CN: JMX URL
|
||||
en-US: JMX URL
|
||||
ja-JP: JMX URL
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# required-true or false
|
||||
@@ -75,6 +80,7 @@ params:
|
||||
name:
|
||||
zh-CN: 用户名
|
||||
en-US: Username
|
||||
ja-JP: ユーザー名
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: text
|
||||
# when type is text, use limit to limit string length
|
||||
@@ -89,6 +95,7 @@ params:
|
||||
name:
|
||||
zh-CN: 密码
|
||||
en-US: Password
|
||||
ja-JP: パスワード
|
||||
# type-param field type(most mapping the html input tag)
|
||||
type: password
|
||||
# required-true or false
|
||||
@@ -102,6 +109,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 虚拟机基础信息
|
||||
en-US: JVM Basic
|
||||
ja-JP: Java仮想マシン基礎情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -113,22 +121,26 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 名称
|
||||
en-US: Vm Name
|
||||
ja-JP: 仮想マシン名
|
||||
- field: VmVendor
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 厂商
|
||||
en-US: Vm Vendor
|
||||
ja-JP: 仮想マシンベンダー
|
||||
- field: VmVersion
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 版本
|
||||
en-US: Vm Version
|
||||
ja-JP: 仮想マシンバージョン
|
||||
- field: Uptime
|
||||
type: 0
|
||||
unit: ms
|
||||
i18n:
|
||||
zh-CN: 运行时长
|
||||
en-US: Up time
|
||||
ja-JP: アップタイム
|
||||
# the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk
|
||||
protocol: jmx
|
||||
# the config content when protocol is jmx
|
||||
@@ -148,6 +160,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 内存池
|
||||
en-US: Memory Pool
|
||||
ja-JP: メモリプール
|
||||
fields:
|
||||
- field: name
|
||||
type: 1
|
||||
@@ -155,30 +168,35 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 指标名称
|
||||
en-US: Name
|
||||
ja-JP: 指標名
|
||||
- field: committed
|
||||
type: 0
|
||||
unit: MB
|
||||
i18n:
|
||||
zh-CN: 已分配内存
|
||||
en-US: Committed
|
||||
ja-JP: コミットメモリ
|
||||
- field: init
|
||||
type: 0
|
||||
unit: MB
|
||||
i18n:
|
||||
zh-CN: 初始化内存
|
||||
en-US: Init
|
||||
ja-JP: イニシャルメモリ
|
||||
- field: max
|
||||
type: 0
|
||||
unit: MB
|
||||
i18n:
|
||||
zh-CN: 最大内存
|
||||
en-US: Max
|
||||
ja-JP: 最大メモリ
|
||||
- field: used
|
||||
type: 0
|
||||
unit: MB
|
||||
i18n:
|
||||
zh-CN: 已使用内存
|
||||
en-US: Used
|
||||
ja-JP: 使用済みメモリ
|
||||
units:
|
||||
- committed=B->MB
|
||||
- init=B->MB
|
||||
@@ -215,27 +233,32 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 本地代码缓冲区
|
||||
en-US: Code Cache
|
||||
ja-JP: コードキャッシュ
|
||||
fields:
|
||||
- field: committed
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 已分配内存
|
||||
en-US: Committed
|
||||
ja-JP: コミットメモリ
|
||||
- field: init
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 初始化内存
|
||||
en-US: Init
|
||||
ja-JP: イニシャルメモリ
|
||||
- field: max
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最大内存
|
||||
en-US: Max
|
||||
ja-JP: 最大メモリ
|
||||
- field: used
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 已使用内存
|
||||
en-US: Used
|
||||
ja-JP: 使用済みメモリ
|
||||
aliasFields:
|
||||
- Usage->committed
|
||||
- Usage->init
|
||||
@@ -262,6 +285,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 类加载信息
|
||||
en-US: Class Loading
|
||||
ja-JP: クラスローディング情報
|
||||
# collect metrics content
|
||||
fields:
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
@@ -270,16 +294,19 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 当前已加载类数量
|
||||
en-US: Loaded Class Count
|
||||
ja-JP: ロードされたクラス数
|
||||
- field: TotalLoadedClassCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 已加载类总数量
|
||||
en-US: Total Loaded Class Count
|
||||
ja-JP: ロードされたクラス総数
|
||||
- field: UnloadedClassCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 未加载类总数量
|
||||
en-US: Unloaded Class Count
|
||||
ja-JP: アンロードされたクラス総数
|
||||
protocol: jmx
|
||||
jmx:
|
||||
host: ^_^host^_^
|
||||
@@ -294,6 +321,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 线程信息
|
||||
en-US: Thread
|
||||
ja-JP: スレッド情報
|
||||
# collect metrics content
|
||||
fields:
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
@@ -302,33 +330,39 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 已启动线程总数
|
||||
en-US: Total Started Thread Count
|
||||
ja-JP: スレッド総数
|
||||
- field: ThreadCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 活跃线程数
|
||||
en-US: Thread Count
|
||||
ja-JP: 活躍スレッド数
|
||||
- field: PeakThreadCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最大峰值线程数
|
||||
en-US: Peak Thread Count
|
||||
ja-JP: 最大スレッド数
|
||||
- field: DaemonThreadCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 活跃守护线程数
|
||||
en-US: Daemon Thread Count
|
||||
ja-JP: デーモンスレッド数
|
||||
- field: CurrentThreadUserTime
|
||||
type: 0
|
||||
unit: s
|
||||
i18n:
|
||||
zh-CN: 线程占用的CPU时间(用户态)
|
||||
en-US: Current Thread User Time
|
||||
ja-JP: 現在のスレッドユーザー時間
|
||||
- field: CurrentThreadCpuTime
|
||||
type: 0
|
||||
unit: s
|
||||
i18n:
|
||||
zh-CN: 线程占用的CPU时间
|
||||
en-US: Current Thread CPU Time
|
||||
ja-JP: 現在のスレッドシステム時間
|
||||
units:
|
||||
- CurrentThreadUserTime=NS->S
|
||||
- CurrentThreadCpuTime=NS->S
|
||||
|
||||
@@ -21,12 +21,13 @@ app: hbase_master
|
||||
name:
|
||||
zh-CN: Apache Hbase Master
|
||||
en-US: Apache Hbase Master
|
||||
ja-JP: Apache Hbase Master
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: Hertzbeat 对 Hbase 数据库 Master 节点监控指标进行监控。<br>您可以点击 “<i>新建 Apache Hbase Master</i>” 并进行配置,或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: Hertzbeat monitors the Master node monitoring indicators of the Hbase database. <br>You can click "<i>New Apache Hbase Master</i>" to configure, or select "<i>More Actions</i>" to import an existing configuration.
|
||||
zh-TW: Hertzbeat 對 Hbase 數據庫 Master 节點監控指標進行監控。<br>您可以點擊 “<i>新建 Apache Hbase Master</i>” 並進行配置,或者選擇“<i>更多操作</i>”,導入已有配置。
|
||||
|
||||
ja-JP: Hertzbeat は HbaseデータベースのMasterノードの一般的なメトリック監視します。<br>「<i>新規 Apache Hbase Master</i>」をクリックしてパラメタを設定した後、新規することができます。
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hbase_master/
|
||||
en-US: https://hertzbeat.apache.org/docs/help/hbase_master/
|
||||
@@ -38,6 +39,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -48,6 +50,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -62,6 +65,7 @@ params:
|
||||
name:
|
||||
zh-CN: 查询超时时间
|
||||
en-US: Query Timeout
|
||||
ja-JP: クエリタイムアウト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# required-true or false
|
||||
@@ -76,6 +80,7 @@ params:
|
||||
name:
|
||||
zh-CN: 启用HTTPS
|
||||
en-US: HTTPS
|
||||
ja-JP: HTTPS
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: boolean
|
||||
# required-true or false
|
||||
@@ -87,6 +92,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Master服务信息
|
||||
en-US: Master Service Info
|
||||
ja-JP: Masterサービス情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -98,21 +104,25 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 活跃RegionServer数量
|
||||
en-US: numRegionServers
|
||||
ja-JP: 活躍的なRegionServer数
|
||||
- field: numDeadRegionServers
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 异常RegionServer数量
|
||||
en-US: numDeadRegionServers
|
||||
ja-JP: 異常的なRegionServer数
|
||||
- field: averageLoad
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 集群平均负载
|
||||
en-US: averageLoad
|
||||
ja-JP: 平均ロード
|
||||
- field: clusterRequests
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 集群请求数量
|
||||
en-US: clusterRequests
|
||||
ja-JP: クラスターのリクエスト数
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.numRegionServers
|
||||
@@ -137,6 +147,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Region In Transition 信息
|
||||
en-US: Region In Transition Info
|
||||
ja-JP: Region In Transition 情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 1
|
||||
@@ -148,16 +159,19 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 当前的 RIT 数量
|
||||
en-US: ritCount
|
||||
ja-JP: RIT数
|
||||
- field: ritCountOverThreshold
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 超过阈值的 RIT 数量
|
||||
en-US: ritCountOverThreshold
|
||||
ja-JP: 閾値を超えたRIT数
|
||||
- field: ritOldestAge
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最老的RIT的持续时间
|
||||
en-US: ritOldestAge
|
||||
ja-JP: 最古のRITのスパン
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.ritCount
|
||||
@@ -180,6 +194,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 基础信息
|
||||
en-US: Basic Info
|
||||
ja-JP: 基礎情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 2
|
||||
@@ -191,48 +206,57 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 当前活跃RegionServer列表
|
||||
en-US: liveRegionServers
|
||||
ja-JP: 活躍的なRegionServer
|
||||
- field: deadRegionServers
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: 当前离线RegionServer列表
|
||||
en-US: deadRegionServers
|
||||
ja-JP: オフラインRegionServer
|
||||
- field: zookeeperQuorum
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: Zookeeper列表
|
||||
en-US: zookeeperQuorum
|
||||
ja-JP: zookeeper定足数
|
||||
- field: masterHostName
|
||||
type: 1
|
||||
i18n:
|
||||
zh-CN: Master节点
|
||||
en-US: masterHostName
|
||||
ja-JP: Masterホスト名
|
||||
- field: BalancerCluster_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 集群负载均衡次数
|
||||
en-US: BalancerCluster_num_ops
|
||||
ja-JP: クラスターのロードバランシング回数
|
||||
- field: numActiveHandler
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: RPC句柄数
|
||||
en-US: numActiveHandler
|
||||
ja-JP: RPCハンドル数
|
||||
- field: receivedBytes
|
||||
type: 0
|
||||
unit: 'MB'
|
||||
i18n:
|
||||
zh-CN: 集群接收数据量(MB)
|
||||
en-US: receivedBytes
|
||||
ja-JP: 受信バイト
|
||||
- field: sentBytes
|
||||
type: 0
|
||||
unit: 'MB'
|
||||
i18n:
|
||||
zh-CN: 集群发送数据量(MB)
|
||||
en-US: sentBytes
|
||||
ja-JP: 送信バイト
|
||||
- field: clusterRequests
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 集群总请求数量
|
||||
en-US: clusterRequests
|
||||
ja-JP: クラスターのリクエスト数
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.beans[?(@.name == "Hadoop:service=HBase,name=Master,sub=Server")].['tag.liveRegionServers']
|
||||
|
||||
@@ -21,11 +21,13 @@ app: hbase_regionserver
|
||||
name:
|
||||
zh-CN: Apache Hbase RegionServer
|
||||
en-US: Apache Hbase RegionServer
|
||||
ja-JP: Apache Hbase RegionServer
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: Hertzbeat 对 Hbase 数据库 RegionServer 节点监控指标进行监控。<br>您可以点击 “<i>新建 Apache Hbase RegionServer</i>” 并进行配置,或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: Hertzbeat monitors the RegionServer node monitoring indicators of the Hbase database. <br>You can click "<i>New Apache Hbase RegionServer</i>" to configure, or select "<i>More Actions</i>" to import an existing configuration.
|
||||
zh-TW: Hertzbeat 對 Hbase 數據庫 RegionServer 节點監控指標進行監控。<br>您可以點擊 “<i>新建 Apache Hbase RegionServer</i>” 並進行配置,或者選擇“<i>更多操作</i>”,導入已有配置。
|
||||
ja-JP: Hertzbeat は HbaseデータベースのRegionServerノードの一般的なメトリック監視します。<br>「<i>新規 Apache Hbase RegionServer</i>」をクリックしてパラメタを設定した後、新規することができます。
|
||||
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hbase_regionserver/
|
||||
@@ -38,6 +40,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -48,6 +51,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -62,6 +66,7 @@ params:
|
||||
name:
|
||||
zh-CN: 查询超时时间
|
||||
en-US: Query Timeout
|
||||
ja-JP: クエリタイムアウト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# required-true or false
|
||||
@@ -76,6 +81,7 @@ params:
|
||||
name:
|
||||
zh-CN: 启用HTTPS
|
||||
en-US: HTTPS
|
||||
ja-JP: HTTPS
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: boolean
|
||||
# required-true or false
|
||||
@@ -87,6 +93,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: RegionServer 服务信息
|
||||
en-US: RegionServer Service Info
|
||||
ja-JP: RegionServerサービス情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 0
|
||||
@@ -98,24 +105,28 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Region数量
|
||||
en-US: regionCount
|
||||
ja-JP: Region数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: readRequestCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 重启集群后的读请求数量
|
||||
en-US: readRequestCount
|
||||
ja-JP: 読み取りリクエスト数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: writeRequestCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 重启集群后的写请求数量
|
||||
en-US: writeRequestCount
|
||||
ja-JP: 書き込みリクエスト数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: averageRegionSize
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 平均Region大小
|
||||
en-US: averageRegionSize
|
||||
ja-JP: Regionの平均サイズ
|
||||
unit: 'MB'
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: totalRequestCount
|
||||
@@ -123,108 +134,126 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 全部请求数量
|
||||
en-US: totalRequestCount
|
||||
ja-JP: リクエスト総数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ScanTime_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Scan 请求总量
|
||||
en-US: ScanTime_num_ops
|
||||
ja-JP: Scan操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: Append_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Append 请求量
|
||||
en-US: Append_num_ops
|
||||
ja-JP: Append操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: Increment_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Increment请求量
|
||||
en-US: Increment_num_ops
|
||||
ja-JP: Increment操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: Get_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Get 请求量
|
||||
en-US: Get_num_ops
|
||||
ja-JP: Get操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: Delete_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Delete 请求量
|
||||
en-US: Delete_num_ops
|
||||
ja-JP: Delete操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: Put_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Put 请求量
|
||||
en-US: Put_num_ops
|
||||
ja-JP: Put操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ScanTime_mean
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 平均 Scan 请求时间
|
||||
en-US: ScanTime_mean
|
||||
ja-JP: Scan操作の平均時間
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ScanTime_min
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最小 Scan 请求时间
|
||||
en-US: ScanTime_min
|
||||
ja-JP: Scan操作の最小時間
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ScanTime_max
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最大 Scan 请求时间
|
||||
en-US: ScanTime_max
|
||||
ja-JP: Scan操作の最大時間
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ScanSize_mean
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 平均 Scan 请求大小
|
||||
en-US: ScanSize_mean
|
||||
ja-JP: Scan操作の平均サイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ScanSize_min
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最小 Scan 请求大小
|
||||
en-US: ScanSize_min
|
||||
ja-JP: Scan操作の最小サイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ScanSize_max
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 最大 Scan 请求大小
|
||||
en-US: ScanSize_max
|
||||
ja-JP: Scan操作の最大サイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: slowPutCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 慢操作次数/Put
|
||||
en-US: slowPutCount
|
||||
ja-JP: スローPut操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: slowGetCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 慢操作次数/Get
|
||||
en-US: slowGetCount
|
||||
ja-JP: スローGet操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: slowAppendCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 慢操作次数/Append
|
||||
en-US: slowAppendCount
|
||||
ja-JP: スローAppend操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: slowIncrementCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 慢操作次数/Increment
|
||||
en-US: slowIncrementCount
|
||||
ja-JP: スローIncrement操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: slowDeleteCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 慢操作次数/Delete
|
||||
en-US: slowDeleteCount
|
||||
ja-JP: スローDelete操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: blockCacheSize
|
||||
type: 0
|
||||
@@ -232,36 +261,42 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 缓存块内存占用大小
|
||||
en-US: blockCacheSize
|
||||
ja-JP: ブロックキャッシュのサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: blockCacheCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 缓存块数量_Block Cache 中的 Block 数量
|
||||
en-US: blockCacheCount
|
||||
ja-JP: ブロックキャッシュ数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: blockCacheExpressHitPercent
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 读缓存命中率
|
||||
en-US: blockCacheExpressHitPercent
|
||||
ja-JP: ブロックキャッシュ命中率
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: memStoreSize
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Memstore 大小
|
||||
en-US: memStoreSize
|
||||
ja-JP: Memstoreサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: FlushTime_num_ops
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: RS写磁盘次数/MemStore Flush 写磁盘次数
|
||||
en-US: FlushTime_num_ops
|
||||
ja-JP: MemStore Flush操作回数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: flushQueueLength
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Region Flush 队列长度
|
||||
en-US: flushQueueLength
|
||||
ja-JP: Region Flushキューの長さ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: flushedCellsSize
|
||||
type: 0
|
||||
@@ -269,18 +304,21 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: flush到磁盘大小
|
||||
en-US: flushedCellsSize
|
||||
ja-JP: flushedサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: storeCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Store 个数
|
||||
en-US: storeCount
|
||||
ja-JP: Store数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: storeFileCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Storefile 个数
|
||||
en-US: storeFileCount
|
||||
ja-JP: Storeファイル数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: storeFileSize
|
||||
type: 0
|
||||
@@ -288,36 +326,42 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: Storefile 大小
|
||||
en-US: storeFileSize
|
||||
ja-JP: Storeファイルサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: compactionQueueLength
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Compaction 队列长度
|
||||
en-US: compactionQueueLength
|
||||
ja-JP: Compactionキューの長さ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: percentFilesLocal
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Region 的 HFile 位于本地 HDFS data node的比例
|
||||
en-US: percentFilesLocal
|
||||
ja-JP: Regionのローカルファイルのパーセント
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: percentFilesLocalSecondaryRegions
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Region 副本的 HFile 位于本地 HDFS data node的比例
|
||||
en-US: percentFilesLocalSecondaryRegions
|
||||
ja-JP: Secondary Regionのローカルファイルのパーセント
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: hlogFileCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: WAL 文件数量
|
||||
en-US: hlogFileCount
|
||||
ja-JP: WALファイル数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: hlogFileSize
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: WAL 文件大小
|
||||
en-US: hlogFileSize
|
||||
ja-JP: WALファイルサイズ
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.regionCount
|
||||
@@ -414,6 +458,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: RegionServer IPC 信息
|
||||
en-US: RegionServer IPC Info
|
||||
ja-JP: RegionServer IPC 情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 1
|
||||
@@ -425,24 +470,28 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: RPC句柄数
|
||||
en-US: numActiveHandler
|
||||
ja-JP: RPCハンドル数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: NotServingRegionException
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: NotServingRegionException 异常数量
|
||||
en-US: NotServingRegionException
|
||||
ja-JP: NotServingRegionException
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: RegionMovedException
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: RegionMovedException异常数量
|
||||
en-US: RegionMovedException
|
||||
ja-JP: RegionMovedException
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: RegionTooBusyException
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: RegionTooBusyException异常数量
|
||||
en-US: RegionTooBusyException
|
||||
ja-JP: RegionTooBusyException
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.numActiveHandler
|
||||
@@ -468,6 +517,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: RegionServer JVM 信息
|
||||
en-US: RegionServer JVM Info
|
||||
ja-JP: RegionServer Java仮想マシン情報
|
||||
# metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel
|
||||
# priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue
|
||||
priority: 2
|
||||
@@ -480,6 +530,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程使用的非堆内存大小
|
||||
en-US: MemNonHeapUsedM
|
||||
ja-JP: 使用済みのノンヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemNonHeapCommittedM
|
||||
type: 0
|
||||
@@ -487,6 +538,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程 commit 的非堆内存大小
|
||||
en-US: MemNonHeapCommittedM
|
||||
ja-JP: コミットのノンヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemHeapUsedM
|
||||
type: 0
|
||||
@@ -494,6 +546,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程使用的堆内存大小
|
||||
en-US: MemHeapUsedM
|
||||
ja-JP: 使用済みのヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemHeapCommittedM
|
||||
type: 0
|
||||
@@ -501,6 +554,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程 commit 的堆内存大小
|
||||
en-US: MemHeapCommittedM
|
||||
ja-JP: コミットのヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemHeapMaxM
|
||||
type: 0
|
||||
@@ -508,6 +562,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程最大的堆内存大小
|
||||
en-US: MemHeapMaxM
|
||||
ja-JP: 最大のヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemMaxM
|
||||
type: 0
|
||||
@@ -515,12 +570,14 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 进程最大内存大小
|
||||
en-US: MemMaxM
|
||||
ja-JP: 最大のメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: GcCount
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: Young GC次数
|
||||
en-US: GcCount
|
||||
ja-JP: GC回数
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.MemNonHeapUsedM
|
||||
|
||||
@@ -21,11 +21,13 @@ app: hdfs_datanode
|
||||
name:
|
||||
zh-CN: Apache HDFS DataNode
|
||||
en-US: Apache HDFS DataNode
|
||||
ja-JP: Apache HDFS DataNode
|
||||
# The description and help of this monitoring type
|
||||
help:
|
||||
zh-CN: Hertzbeat 对 HDFS DataNode 节点监控指标进行监控。<br>您可以点击 “<i>新建 Apache HDFS DataNode</i>” 并进行配置,或者选择“<i>更多操作</i>”,导入已有配置。
|
||||
en-US: Hertzbeat monitors the HDFS DataNode metrics. <br>You can click "<i>New Apache HDFS DataNode</i>" to configure, or select "<i>More Actions</i>" to import an existing configuration.
|
||||
zh-TW: Hertzbeat 對 HDFS DataNode 節點監控指標進行監控。<br>您可以點擊 “<i>新建 Apache HDFS DataNode</i>” 並進行配置,或者選擇“<i>更多操作</i>”,導入已有配置。
|
||||
ja-JP: Hertzbeat は HDFS DataNodeの一般的なメトリック監視します。<br>「<i>新規 Apache HDFS DataNode</i>」をクリックしてパラメタを設定した後、新規することができます。
|
||||
|
||||
helpLink:
|
||||
zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hdfs_datanode/
|
||||
@@ -38,6 +40,7 @@ params:
|
||||
name:
|
||||
zh-CN: 目标Host
|
||||
en-US: Target Host
|
||||
ja-JP: 目標ホスト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: host
|
||||
# required-true or false
|
||||
@@ -48,6 +51,7 @@ params:
|
||||
name:
|
||||
zh-CN: 端口
|
||||
en-US: Port
|
||||
ja-JP: ポート
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# when type is number, range is required
|
||||
@@ -62,6 +66,7 @@ params:
|
||||
name:
|
||||
zh-CN: 查询超时时间
|
||||
en-US: Query Timeout
|
||||
ja-JP: クエリタイムアウト
|
||||
# type-param field type(most mapping the html input type)
|
||||
type: number
|
||||
# required-true or false
|
||||
@@ -86,6 +91,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: DataNode HDFS使用量
|
||||
en-US: DfsUsed
|
||||
ja-JP: 使用済みのHDFS容量
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: Remaining
|
||||
type: 0
|
||||
@@ -93,6 +99,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: DataNode HDFS剩余空间
|
||||
en-US: Remaining
|
||||
ja-JP: 使用可能のHDFS容量
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: Capacity
|
||||
type: 0
|
||||
@@ -100,6 +107,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: DataNode HDFS空间总量
|
||||
en-US: Capacity
|
||||
ja-JP: HDFS容量合計
|
||||
units:
|
||||
- DfsUsed=B->GB
|
||||
- Remaining=B->GB
|
||||
@@ -134,60 +142,70 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: JVM 当前已经使用的 NonHeapMemory 的大小
|
||||
en-US: MemNonHeapUsedM
|
||||
ja-JP: 使用済みのノンヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemNonHeapCommittedM
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM 配置的 NonHeapCommittedM 的大小
|
||||
en-US: MemNonHeapCommittedM
|
||||
ja-JP: コミットのノンヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemHeapUsedM
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM 当前已经使用的 HeapMemory 的大小
|
||||
en-US: MemHeapUsedM
|
||||
ja-JP: 使用済みのヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemHeapCommittedM
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM HeapMemory 提交大小
|
||||
en-US: MemHeapCommittedM
|
||||
ja-JP: コミットのヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemHeapMaxM
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM 配置的 HeapMemory 的大小
|
||||
en-US: MemHeapMaxM
|
||||
ja-JP: 配置のヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: MemMaxM
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: JVM 运行时可以使用的最大内存大小
|
||||
en-US: MemMaxM
|
||||
ja-JP: 最大のヒープメモリサイズ
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ThreadsRunnable
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 处于 RUNNABLE 状态的线程数量
|
||||
en-US: ThreadsRunnable
|
||||
ja-JP: RUNNABLE スレッド数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ThreadsBlocked
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 处于 BLOCKED 状态的线程数量
|
||||
en-US: ThreadsBlocked
|
||||
ja-JP: BLOCKED スレッド数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ThreadsWaiting
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 处于 WAITING 状态的线程数量
|
||||
en-US: ThreadsWaiting
|
||||
ja-JP: WAITING スレッド数
|
||||
# field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field
|
||||
- field: ThreadsTimedWaiting
|
||||
type: 0
|
||||
i18n:
|
||||
zh-CN: 处于 TIMED WAITING 状态的线程数量
|
||||
en-US: ThreadsTimedWaiting
|
||||
ja-JP: TIMED WAITING スレッド数
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.MemNonHeapUsedM
|
||||
@@ -232,6 +250,7 @@ metrics:
|
||||
i18n:
|
||||
zh-CN: 启动时间
|
||||
en-US: StartTime
|
||||
ja-JP: 起動時間
|
||||
# (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field
|
||||
aliasFields:
|
||||
- $.beans[?(@.name == "java.lang:type=Runtime")].StartTime
|
||||
|
||||
+23
-19
@@ -17,22 +17,8 @@
|
||||
|
||||
package org.apache.hertzbeat.manager.service;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.hertzbeat.common.entity.manager.Monitor;
|
||||
import org.apache.hertzbeat.common.entity.manager.Bulletin;
|
||||
import org.apache.hertzbeat.manager.pojo.dto.BulletinMetricsData;
|
||||
import org.apache.hertzbeat.common.entity.manager.Monitor;
|
||||
import org.apache.hertzbeat.manager.dao.BulletinDao;
|
||||
import org.apache.hertzbeat.manager.service.impl.BulletinServiceImpl;
|
||||
import org.apache.hertzbeat.warehouse.store.realtime.RealTimeDataReader;
|
||||
@@ -46,6 +32,21 @@ import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* Test case for {@link BulletinService}
|
||||
*/
|
||||
@@ -145,14 +146,17 @@ public class BulletinServiceTest {
|
||||
fields.put("1", List.of("1", "2"));
|
||||
bulletin.setFields(fields);
|
||||
|
||||
BulletinMetricsData.BulletinMetricsDataBuilder contentBuilder = BulletinMetricsData.builder();
|
||||
|
||||
Monitor monitor = new Monitor();
|
||||
|
||||
when(bulletinDao.findById(any(Long.class))).thenReturn(java.util.Optional.of(bulletin));
|
||||
when(realTimeDataReader.getCurrentMetricsData(any(), any(String.class))).thenReturn(null);
|
||||
when(monitorService.getMonitor(any(Long.class))).thenReturn(monitor);
|
||||
assertNotNull(bulletinService.buildBulletinMetricsData(any(Long.class)));
|
||||
|
||||
when(monitorService.getMonitor(any(Long.class))).thenReturn(null);
|
||||
assertTrue(bulletinService.buildBulletinMetricsData(any(Long.class)).getContent().isEmpty());
|
||||
|
||||
when(monitorService.getMonitor(1L)).thenReturn(monitor);
|
||||
assertFalse(bulletinService.buildBulletinMetricsData(2L).getContent().isEmpty());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+19
-11
@@ -98,29 +98,37 @@ public class OpenTelemetryConfig {
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides an AutoConfigurationCustomizerProvider to tailor the auto-configured OpenTelemetry SDK.
|
||||
* This includes setting up GrepTimeDB exporters for logs and traces, and customizing the resource.
|
||||
* Active only if 'greptime.enabled' is true.
|
||||
*
|
||||
* @param greptimeProperties Configuration for GrepTimeDB.
|
||||
* @return AutoConfigurationCustomizerProvider instance.
|
||||
* Provides default OpenTelemetry configuration that always executes.
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnProperty(name = "warehouse.store.greptime.enabled", havingValue = "true")
|
||||
public AutoConfigurationCustomizerProvider greptimeOtelCustomizer(GreptimeProperties greptimeProperties) {
|
||||
log.info("GreptimeDB is enabled. Applying OpenTelemetry SDK customizations.");
|
||||
|
||||
public AutoConfigurationCustomizerProvider defaultOtelCustomizer() {
|
||||
log.info("Applying default OpenTelemetry SDK customizations.");
|
||||
return providerCustomizer -> providerCustomizer
|
||||
.addPropertiesCustomizer(sdkConfigProperties -> {
|
||||
Map<String, String> newProperties = new HashMap<>();
|
||||
newProperties.put("otel.metrics.exporter", "none");
|
||||
newProperties.put("otel.traces.exporter", "otlp");
|
||||
newProperties.put("otel.traces.exporter", "none");
|
||||
newProperties.put("otel.logs.exporter", "none");
|
||||
return newProperties;
|
||||
})
|
||||
.addResourceCustomizer((resource, configProperties) -> {
|
||||
log.info("Customizing auto-configured OpenTelemetry Resource with service name: {}.", HERTZBEAT_SERVICE_NAME);
|
||||
return resource.merge(Resource.builder().put(SERVICE_NAME, HERTZBEAT_SERVICE_NAME).build());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides GrepTimeDB-specific OpenTelemetry configuration when enabled.
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnProperty(name = "warehouse.store.greptime.enabled", havingValue = "true")
|
||||
public AutoConfigurationCustomizerProvider greptimeOtelCustomizer(GreptimeProperties greptimeProperties) {
|
||||
log.info("GreptimeDB is enabled. Applying additional OpenTelemetry SDK customizations for GrepTimeDB.");
|
||||
return providerCustomizer -> providerCustomizer
|
||||
.addPropertiesCustomizer(sdkConfigProperties -> {
|
||||
Map<String, String> newProperties = new HashMap<>();
|
||||
newProperties.put("otel.traces.exporter", "otlp");
|
||||
return newProperties;
|
||||
})
|
||||
.addSpanExporterCustomizer((originalSpanExporter, configProperties) -> {
|
||||
String traceEndpoint = greptimeProperties.httpEndpoint() + "/v1/otlp/v1/traces";
|
||||
|
||||
@@ -0,0 +1,226 @@
|
||||
---
|
||||
title: Announcement of Apache Hertzbeat 1.7.1 Release
|
||||
author: tomsun28
|
||||
author_title: tomsun28
|
||||
author_url: https://github.com/zhangshenghang
|
||||
author_image_url: https://avatars.githubusercontent.com/u/24788200?s=400&v=4
|
||||
tags: [opensource, release]
|
||||
keywords: [open source monitoring system, alerting system, Hertzbeat, release]
|
||||
---
|
||||
|
||||
Dear Community Members,
|
||||
|
||||
We are thrilled to announce the official release of Apache Hertzbeat version 1.7.1!
|
||||
|
||||
## Downloads and Documentation
|
||||
|
||||
- **Apache Hertzbeat 1.7.1 Download Link**: <https://hertzbeat.apache.org/docs/download>
|
||||
- **Apache Hertzbeat Documentation**: <https://hertzbeat.apache.org/docs/>
|
||||
|
||||
## Major Updates
|
||||
|
||||
### New Features and Enhancements
|
||||
|
||||
- Added support for Siemens PLC S7 protocol (#3194)
|
||||
- Introduced support for Hikvision, Dahua, and Uniview devices (#3211, #3214)
|
||||
- Support for Uptime Kuma and Zabbix alert sources (#3312, #3317)
|
||||
- Service discovery enhancements: Eureka, Consul, and DNS SD (#3323, #3326, #3328)
|
||||
- Alert grouping and inhibition support (#3206)
|
||||
- System notification as a new alert method (#3275)
|
||||
- Collector-side alerting capability (#2693)
|
||||
- Initial logging module implemented (#3218)
|
||||
- Integrated OpenTelemetry for logs and traces (#3319)
|
||||
- Added PushGateway support for pushing metrics (#3204)
|
||||
- Enhanced Monitor List and Detail UIs (#3199, #3200)
|
||||
- Improved Grafana configuration priorities and exception handling (#3241)
|
||||
- Optimized prompts, UI labels, and display titles (#3270, #3289)
|
||||
- Introduced an AI bot for assistance (#3285)
|
||||
- Added i18n support for AI bot (#3330)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fixed whitespace issue in instance filtering for alert expressions (#3276)
|
||||
- Corrected incorrect webhook alert template (#3265)
|
||||
- Fixed incorrect pendingTimeouts calculation in HashedWheelTimer (#3174)
|
||||
- Resolved historical data display issues in VictoriaMetrics charts (#3248, #3264, #3297)
|
||||
- Fixed async job cancellation not removing cached jobs (#3240)
|
||||
- Fixed UI issue with bulletin indicator selection (#3201)
|
||||
- Fixed Prometheus metric response parsing errors (#3274)
|
||||
- Resolved Collector OOM error (#3295)
|
||||
- Fixed frontend title showing “Not page name” when filtered by monitor type (#3289)
|
||||
|
||||
### Refactoring and Optimization
|
||||
|
||||
- Unified usage of label instead of tag (#3278)
|
||||
- Refactored alert datasource calculations (#3253)
|
||||
- Optimized Kafka collection logic and increased test coverage (#3189)
|
||||
- Improved DnsCollectTest status code logic (#3209)
|
||||
- Refactored HTTP service discovery implementation (#3300)
|
||||
- Defaulted to UTF-8 encoding (#3315)
|
||||
- Removed potential CVE vulnerability action (#3303)
|
||||
|
||||
### Tests and Quality
|
||||
|
||||
- Added unit tests for:
|
||||
- AlertInhibitController (#3183)
|
||||
- XML response parsing (#3212)
|
||||
- PeriodicAlertCalculator (#3304)
|
||||
- Added E2E tests for:
|
||||
- JDBC common collection (#3273)
|
||||
- Redis collector (#3283)
|
||||
- Kubernetes monitoring (#3280)
|
||||
|
||||
### Documentation Enhancements
|
||||
|
||||
- Help and usage docs:
|
||||
- Alert Center, Alert Silence, Alarm Inhibition (#3181, #3229, #3206)
|
||||
- Metrics collection workflow blog (#3195)
|
||||
- Spring Boot 2.x/3.x monitoring config (#3231)
|
||||
- Grafana dashboard setup (#3238)
|
||||
- Upgrade guide (EN & CN) (#3302)
|
||||
- Spring Boot auto practice use case (EN & CN) (#3293, #3298)
|
||||
- Alert integration help documentation (#3308)
|
||||
- Style and maintenance:
|
||||
- Code style check documentation (#3232)
|
||||
- Dead link checker improvements (#3302)
|
||||
- Markdown formatting fixes and lint config updates (#3310)
|
||||
- Internationalization:
|
||||
- Japanese docs for README, ActiveMQ, Airflow, AlmaLinux (#3329, #3333, #3339, #3343)
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
Special thanks to the following community members for their collaborative efforts:
|
||||
|
||||
> @LinuxSuRen @gagaradio @boyucjz @MasamiYui @tomsun28 @Aias00 @zhangshenghang @zqr10159 @LiuTianyou @a-little-fool @Calvin979
|
||||
> @LL-LIN @JuJinPark @xiaomizhou2 @leo-934 @Rancho-7 @pwallk @bigcyy @sarthakeash @KevinLLF @PengJingzhao @Cyanty @markguo123
|
||||
|
||||
## What's Changed
|
||||
|
||||
- fix: Ai is a typo by @LinuxSuRen in #3176
|
||||
- [Doc] Modify the error records in the document by @zhangshenghang in #3178
|
||||
- [bug]bugfix:fix bug for package import error by @PengJingzhao in #3180
|
||||
- [doc] add help documentation for Alarms Center by @bigcyy in #3181
|
||||
- [docs] add collector user guide by @sarthakeash in #3187
|
||||
- [bugfix] Modify inconsistent icons by @MasamiYui in #3190
|
||||
- [doc] add blog bout How Does Metrics Collection Work by @JuJinPark in #3195
|
||||
- [improve] update monitor detail ui by @tomsun28 in #3199
|
||||
- [doc] update new hertzbeat ppmc by @tomsun28 in #3191
|
||||
- [improve] update monitor list ui by @tomsun28 in #3200
|
||||
- update download info by @Aias00 in #3203
|
||||
- [bugfix] fix bulletin indicator selection status error by @bigcyy in #3201
|
||||
- [improve] optimize kafka collection logic and expand test coverage by @Rancho-7 in #3189
|
||||
- [improve] support the use of time expressions in HTTP payloads by @LiuTianyou in #3192
|
||||
- [improve] i18n Portuguese by @LiuTianyou in #3193
|
||||
- support plc s7 protocol for siemens by @boyucjz in #3194
|
||||
- [doc] add doc for alarm grouping and alarm inhibit by @LiuTianyou in #3206
|
||||
- [improve] optimize `DnsCollectTest` with status code. by @Rancho-7 in #3209
|
||||
- [doc] archive version docs by @tomsun28 in #3207
|
||||
- [feature]Implementation of Hikvision camera monitoring and http monitoring xml parsing function by @zqr10159 in #3211
|
||||
- [test]add test for controller AlertInhibitController by @PengJingzhao in #3183
|
||||
- [test] hertzbeat-collector: add unit test for XML response parsing by @zqr10159 in #3212
|
||||
- add a Pushgateway to push module by @leo-934 in #3204
|
||||
- [feature]add support for Dahua and Uniview devices by @zqr10159 in #3214
|
||||
- [Doc] Fix dead link by @zhangshenghang in #3227
|
||||
- [feature]A preliminary logging module implementation by @zqr10159 in #3218
|
||||
- [Doc] Modify the YML configuration parameters for Spring Boot 2.0/3.0 monitoring by @Cyanty in #3231
|
||||
- [Doc] Add Blog by @zhangshenghang in #3224
|
||||
- [doc] add alerting silence doc. by @a-little-fool in #3229
|
||||
- [doc] code style check by @a-little-fool in #3232
|
||||
- [bugfix]: Fix the issue where pendingTimeouts may be incorrect in the HashedWheelTimer. by @gagaradio in #3174
|
||||
- [doc] add code-style-check zh-ch. by @a-little-fool in #3236
|
||||
- [doc]update Grafana dashboard setup instructions by @zqr10159 in #3238
|
||||
- [bugfix] Added jobContentCache.remove(jobId) to cancelAsyncCollectJob by @bigcyy in #3240
|
||||
- [doc] add new release 1.7.0 blog by @tomsun28 in #3237
|
||||
- [improve] Adjust Grafana configuration priority hierarchy and optimize API request exception handling by @Cyanty in #3241
|
||||
- switch to online parser & add query datasource by @leo-934 in #3215
|
||||
- [feat] enable label-based filtering and selection for monitoring thresholds by @bigcyy in #3223
|
||||
- [doc] add new contributors to wall by @tomsun28 in #3243
|
||||
- fix UriComponentsBuilder in PromqlQueryExecutor by @leo-934 in #3244
|
||||
- [Feature] Add log mcp for java by @zhangshenghang in #3254
|
||||
- [bugfix] fix a remote command execution. by @a-little-fool in #3250
|
||||
- [refactor] Alert datasource calculate by @MasamiYui in #3253
|
||||
- [bugfix] Resolve incorrect display of detailed information in Prometheus task history monitoring charts under VictoriaMetrics. by @KevinLLF in #3248
|
||||
- [doc] add new contributor in wall by @tomsun28 in #3259
|
||||
- [bugfix] Set the prometheus monitoring time and correct historical data queries (#3264) by @Cyanty in #3264
|
||||
- [bugfix] Wrong webhook alert template by @MasamiYui in #3265
|
||||
- [bugfix] correct instance filtering regex in RealTimeAlertCalculator by @bigcyy in #3269
|
||||
- [feature] Support Collector Alarm by @pwallk in #2693
|
||||
- [feature] add Maven Wrapper scripts by @zhangshenghang in #3271
|
||||
- [webapp] update header logo style by @tomsun28 in #3272
|
||||
- [Improve] optimize prompt by @zhangshenghang in #3270
|
||||
- [bugfix] fix the prometheus metric response data parsing is abnormal by @LiuTianyou in #3274
|
||||
- [feature] new alert supports reminding through system notifications by @LiuTianyou in #3275
|
||||
- [bugfix] support no-whitespace alert expressions in instance filtering by @bigcyy in #3276
|
||||
- [refactor] refact tag to label code by @tomsun28 in #3278
|
||||
- [doc] update contributors wall by @tomsun28 in #3281
|
||||
- [improve] Add jdbc common collect e2e code (#3273) by @Cyanty in #3273
|
||||
- [improve] Add E2E tests for Redis collector by @KevinLLF in #3283
|
||||
- [Feature]Support AI bot by @zhangshenghang in #3285
|
||||
- [bugfix]: page title show "Not page name" when filter monitor list by type by @LiuTianyou in #3289
|
||||
- [Task] Set local database as default file server provider by @MasamiYui in #3282
|
||||
- [doc] update doc, usecase blog and help doc by @tomsun28 in #3286
|
||||
- [e2e] add e2e test for k8s monitor by @LiuTianyou in #3280
|
||||
- [webapp] try reduce memory growth and fix crash by @tomsun28 in #3292
|
||||
- [Doc] Add springboot auto practice usecase by @Cyanty in #3293
|
||||
- [bugfix] fix collector direct oom by @tomsun28 in #3295
|
||||
- [Doc] Add English doc for springboot auto practice usecase by @Cyanty in #3298
|
||||
- [bugfix] enables support for VictoriaMetrics in cluster mode within HertzBeat by @bigcyy in #3297
|
||||
- [improve] Optimize the way of Dead Link Check by @Cyanty in #3302
|
||||
- [docs] Add Chinese and English versions of the Hertzbeat upgrade guide by @markguo123 in #3294
|
||||
- [refactor] Remove the possible CVE-2025-30066 security vulnerability action and ignore the 500 code for link check by @Cyanty in #3303
|
||||
- [Improve] Add unit test for PeriodicAlertCalculator by @MasamiYui in #3304
|
||||
- [docs] Correct Markdown formatting and update lint config to enable local checking by @bigcyy in #3310
|
||||
- [docs] add help documentation for alert integration by @bigcyy in #3308
|
||||
- [feature] Support Uptime Kuma alert source by @xiaomizhou2 in #3312
|
||||
- [refactor] refactor auto discovery http sd by @tomsun28 in #3300
|
||||
- [refactor] set default encoding charset utf8 by @tomsun28 in #3315
|
||||
- [feature] Support Zabbix alert source by @xiaomizhou2 in #3317
|
||||
- update the license file, to add the plc4j-driver-s7 license by @boyucjz in #3318
|
||||
- [bugfix] fix the calculator expr exist not work by @tomsun28 in #3314
|
||||
- [feature]: integrate OpenTelemetry for GreptimeDB logs and traces- Rename hertzbeat-log to hertzbeat-otel by @zqr10159 in #3319
|
||||
- [doc] japanese readme by @Calvin979 in #3329
|
||||
- [Improve] Add i18 for ai bot by @MasamiYui in #3330
|
||||
- [feature] Support Eureka Service Discovery by @pwallk in #3323
|
||||
- [doc] japanese activemq by @Calvin979 in #3333
|
||||
- [feat] add deep wiki badge by @Aias00 in #3334
|
||||
- [doc] japanese airflow by @Calvin979 in #3339
|
||||
- [feature] Support Consul Service Discovery by @pwallk in #3326
|
||||
- [feat] Enhance Label Management for Monitors by @bigcyy in #3327
|
||||
- [doc] japanese almalinux by @Calvin979 in #3343
|
||||
- [feature] Support DNS Service Discovery by @MasamiYui in #3328
|
||||
- [build] Update .gitignore and add Maven wrapper properties by @zhangshenghang in #3346
|
||||
- [bugfix] Fix frontend error when all monitor metrics are selected in new bulletin form by @LL-LIN in #3345
|
||||
- [release] update release version 1.7.1 by @zhangshenghang in #3347
|
||||
|
||||
## New Contributors
|
||||
|
||||
- @PengJingzhao made their first contribution in #3180
|
||||
- @boyucjz made their first contribution in #3194
|
||||
- @gagaradio made their first contribution in #3174
|
||||
- @KevinLLF made their first contribution in #3248
|
||||
- @markguo123 made their first contribution in #3294
|
||||
|
||||
## Apache Hertzbeat
|
||||
|
||||
**Repository URL:**
|
||||
|
||||
<https://github.com/apache/hertzbeat>
|
||||
|
||||
**Official Website:**
|
||||
|
||||
<https://hertzbeat.apache.org/>
|
||||
|
||||
**Apache Hertzbeat Download Link:**
|
||||
|
||||
<https://hertzbeat.apache.org/docs/download>
|
||||
|
||||
**Apache Hertzbeat Docker Images:**
|
||||
|
||||
Apache Hertzbeat provides Docker images for each release, available on Docker Hub:
|
||||
|
||||
- HertzBeat: <https://hub.docker.com/r/apache/hertzbeat>
|
||||
- HertzBeat Collector: <https://hub.docker.com/r/apache/hertzbeat-collector>
|
||||
|
||||
**How to Contribute to the Apache Hertzbeat Open Source Community?**
|
||||
|
||||
<https://hertzbeat.apache.org/docs/community/contribution>
|
||||
@@ -0,0 +1,124 @@
|
||||
---
|
||||
id: alert_notification_template
|
||||
title: Notification Template
|
||||
sidebar_label: Notification Template
|
||||
keywords: [Template, Alert Template, Alarm Template, Notification Template, Message Notification, Alert Webhook Callback Notification]
|
||||
---
|
||||
|
||||
> HertzBeat supports custom notification templates. Templates use placeholder variables for rendering, and the system automatically replaces variables with actual alert data during push notifications.
|
||||
|
||||
## Template Configuration
|
||||
|
||||
【Notification】->【Notice Template】->【Template Configuration】
|
||||
|
||||

|
||||
|
||||
## Template Rendering
|
||||
|
||||
HertzBeat notification templates are based on FreeMarker syntax, supporting variable placeholders, conditional judgments, loops, formatting, and other advanced features. During template rendering, the system injects alert data objects (e.g., GroupAlert, SingleAlert) into the template, and variables are automatically replaced with actual values.
|
||||
|
||||
## Available Variables and Data Structures
|
||||
|
||||
### GroupAlert Structure Fields
|
||||
|
||||
[GroupAlert Definition](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/GroupAlert.java)
|
||||
|
||||
- `id`:Primary key of the alert group
|
||||
- `groupKey`: Unique identifier for the group
|
||||
- `status`:Group status (e.g., firing, resolved)
|
||||
- `groupLabels`:Group labels (Map)
|
||||
- `commonLabels`:Common labels (Map)
|
||||
- `commonAnnotations`:Common annotations (Map)
|
||||
- `alertFingerprints`:List of alert fingerprints
|
||||
- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:Metadata
|
||||
- `alerts`:List of alert details (`List<SingleAlert>`)
|
||||
|
||||
### SingleAlert Structure Fields
|
||||
|
||||
[SingleAlert Definition](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/SingleAlert.java)
|
||||
|
||||
- `id`:Primary key of the detail
|
||||
- `fingerprint`:Unique fingerprint
|
||||
- `labels`:Labels (Map)
|
||||
- `annotations`:Annotations (Map)
|
||||
- `content`:Alert content
|
||||
- `status`:Status (firing|resolved)
|
||||
- `triggerTimes`:Number of triggers
|
||||
- `startAt`、`activeAt`、`endAt`:Timestamps
|
||||
- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:Metadata
|
||||
|
||||
## Template Variables and Syntax Explanation
|
||||
|
||||
- **Global Variables**:
|
||||
- `${status}`:Alert status (e.g., alert, recovery, etc.)
|
||||
- `${groupKey}`:Unique identifier for the group
|
||||
- `${commonLabels.xxx}`、`${commonAnnotations.xxx}`:Common labels and annotations, accessed via `xxx`
|
||||
|
||||
- **Alert Details List**:
|
||||
- `${alerts}`:Collection of alert details, usually traversed with `<#list alerts as alert>`
|
||||
- `${alert.labels.xxx}`、`${alert.annotations.xxx}`:Labels and annotations for a single alert
|
||||
- `${alert.content}`:Alert content
|
||||
- `${alert.triggerTimes}`:Number of triggers
|
||||
- `${alert.startAt}`:First trigger time
|
||||
|
||||
- **Template Syntax Support**:
|
||||
- Supports FreeMarker syntax, including conditional statements `<#if>`, loops `<#list>`, JSON stringification `?json_string`, time formatting `?number_to_datetime`, string formatting `?string('yyyy-MM-dd HH:mm:ss')`, etc.
|
||||
- Allows flexible combination of variables and template syntax to achieve complex message customization.
|
||||
- For more syntax, refer to the [FreeMarker Documentation](https://freemarker.apache.org/)
|
||||
|
||||
## Template Example
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "🔔 HertzBeat Alert Notification",
|
||||
"status": "${status!"UNKNOWN"}",
|
||||
"commonLabels": {
|
||||
<#if commonLabels?? && commonLabels.severity??>
|
||||
"severity": "${commonLabels.severity?switch("critical", "❤️ Critical", "warning", "💛 Warning", "info", "💚 Info", "Unknown")}"<#if commonLabels.alertname??>,</#if>
|
||||
</#if>
|
||||
<#if commonLabels?? && commonLabels.alertname??>
|
||||
"alertName": "${commonLabels.alertname}"
|
||||
</#if>
|
||||
},
|
||||
"alerts": [
|
||||
<#if alerts?? && alerts?size gt 0>
|
||||
<#list alerts as alert>
|
||||
{
|
||||
"index": ${alert?index + 1},
|
||||
"labels": {
|
||||
<#if alert.labels?? && alert.labels?size gt 0>
|
||||
<#list alert.labels?keys as key>
|
||||
"${key}": "${alert.labels[key]?json_string}"<#if key?has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
},
|
||||
<#if alert.content?? && alert.content != "">
|
||||
"content": "${alert.content?json_string}",
|
||||
</#if>
|
||||
"triggerTimes": ${alert.triggerTimes!0},
|
||||
"startAt": "${((alert.startAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}",
|
||||
<#if alert.activeAt?? && alert.activeAt gt 0>
|
||||
"activeAt": "${((alert.activeAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}",
|
||||
</#if>
|
||||
<#if alert.endAt?? && alert.endAt gt 0>
|
||||
"endAt": "${(alert.endAt?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}"<#if alert.annotations?? && alert.annotations?size gt 0>,</#if>
|
||||
</#if>
|
||||
<#if alert.annotations?? && alert.annotations?size gt 0>
|
||||
"annotations": {
|
||||
<#list alert.annotations?keys as key>
|
||||
"${key}": "${alert.annotations[key]?json_string}"<#if key?has_next>,</#if>
|
||||
</#list>
|
||||
}
|
||||
</#if>
|
||||
}<#if alert?has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
],
|
||||
"commonAnnotations": {
|
||||
<#if commonAnnotations?? && commonAnnotations?size gt 0>
|
||||
<#list commonAnnotations?keys as key>
|
||||
"${key}": "${commonAnnotations[key]?json_string}"<#if key?has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
}
|
||||
}
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
---
|
||||
id: alert_notification_template
|
||||
title: 通知模板
|
||||
sidebar_label: 通知模板
|
||||
keywords: [模板, 告警模板, 通知模板,消息通知, 告警 Webhook 回调通知]
|
||||
---
|
||||
|
||||
> HertzBeat 支持自定义通知模板,模板采用占位符变量进行渲染,系统会在推送时自动将变量替换为实际告警数据。
|
||||
|
||||
## 模板配置
|
||||
|
||||
【消息通知】->【通知模板】->【模板配置】
|
||||
|
||||

|
||||
|
||||
## 模板渲染
|
||||
|
||||
HertzBeat 通知模板基于 FreeMarker 语法,支持变量占位符、条件判断、循环、格式化等高级用法。模板渲染时,系统会将告警数据对象(如 GroupAlert、SingleAlert)注入模板,变量会被自动替换为实际值。
|
||||
|
||||
## 可用变量与数据结构
|
||||
|
||||
### GroupAlert 结构体字段
|
||||
|
||||
[GroupAlert定义](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/GroupAlert.java)
|
||||
|
||||
- `id`:告警分组主键
|
||||
- `groupKey`:分组唯一标识
|
||||
- `status`:分组状态(如 firing、resolved)
|
||||
- `groupLabels`:分组标签(Map)
|
||||
- `commonLabels`:公共标签(Map)
|
||||
- `commonAnnotations`:公共注解(Map)
|
||||
- `alertFingerprints`:告警指纹列表
|
||||
- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:元数据
|
||||
- `alerts`:告警明细列表(`List<SingleAlert>`)
|
||||
|
||||
### SingleAlert 结构体字段
|
||||
|
||||
[SingleAlert定义](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/SingleAlert.java)
|
||||
|
||||
- `id`:明细主键
|
||||
- `fingerprint`:唯一指纹
|
||||
- `labels`:标签(Map)
|
||||
- `annotations`:注解(Map)
|
||||
- `content`:告警内容
|
||||
- `status`:状态(firing|resolved)
|
||||
- `triggerTimes`:触发次数
|
||||
- `startAt`、`activeAt`、`endAt`:时间戳
|
||||
- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:元数据
|
||||
|
||||
## 模板变量与语法说明
|
||||
|
||||
- **全局变量**:
|
||||
- `${status}`:告警状态(如告警、恢复等)
|
||||
- `${groupKey}`:分组唯一标识
|
||||
- `${commonLabels.xxx}`、`${commonAnnotations.xxx}`:公共标签和注解,可通过 `xxx` 访问具体字段
|
||||
|
||||
- **告警明细列表**:
|
||||
- `${alerts}`:告警明细集合,通常配合 `<#list alerts as alert>` 进行遍历
|
||||
- `${alert.labels.xxx}`、`${alert.annotations.xxx}`:单条告警的标签和注解
|
||||
- `${alert.content}`:告警内容
|
||||
- `${alert.triggerTimes}`:触发次数
|
||||
- `${alert.startAt}`:首次触发时间
|
||||
|
||||
- **模板语法支持**:
|
||||
- 支持 FreeMarker 语法,包括条件判断 `<#if>`、循环 `<#list>`、JSON 字符串化 `?json_string`、时间格式化 `?number_to_datetime`、字符串格式化 `?string('yyyy-MM-dd HH:mm:ss')` 等
|
||||
- 可灵活组合变量与模板语法,实现复杂的消息定制
|
||||
- 更多语法请参考 [FreeMarker 官方文档](https://freemarker.apache.org/)
|
||||
|
||||
## 模板示例
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "🔔 HertzBeat Alert Notification",
|
||||
"status": "${status!"UNKNOWN"}",
|
||||
"commonLabels": {
|
||||
<#if commonLabels?? && commonLabels.severity??>
|
||||
"severity": "${commonLabels.severity?switch("critical", "❤️ Critical", "warning", "💛 Warning", "info", "💚 Info", "Unknown")}"<#if commonLabels.alertname??>,</#if>
|
||||
</#if>
|
||||
<#if commonLabels?? && commonLabels.alertname??>
|
||||
"alertName": "${commonLabels.alertname}"
|
||||
</#if>
|
||||
},
|
||||
"alerts": [
|
||||
<#if alerts?? && alerts?size gt 0>
|
||||
<#list alerts as alert>
|
||||
{
|
||||
"index": ${alert?index + 1},
|
||||
"labels": {
|
||||
<#if alert.labels?? && alert.labels?size gt 0>
|
||||
<#list alert.labels?keys as key>
|
||||
"${key}": "${alert.labels[key]?json_string}"<#if key?has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
},
|
||||
<#if alert.content?? && alert.content != "">
|
||||
"content": "${alert.content?json_string}",
|
||||
</#if>
|
||||
"triggerTimes": ${alert.triggerTimes!0},
|
||||
"startAt": "${((alert.startAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}",
|
||||
<#if alert.activeAt?? && alert.activeAt gt 0>
|
||||
"activeAt": "${((alert.activeAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}",
|
||||
</#if>
|
||||
<#if alert.endAt?? && alert.endAt gt 0>
|
||||
"endAt": "${(alert.endAt?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}"<#if alert.annotations?? && alert.annotations?size gt 0>,</#if>
|
||||
</#if>
|
||||
<#if alert.annotations?? && alert.annotations?size gt 0>
|
||||
"annotations": {
|
||||
<#list alert.annotations?keys as key>
|
||||
"${key}": "${alert.annotations[key]?json_string}"<#if key?has_next>,</#if>
|
||||
</#list>
|
||||
}
|
||||
</#if>
|
||||
}<#if alert?has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
],
|
||||
"commonAnnotations": {
|
||||
<#if commonAnnotations?? && commonAnnotations?size gt 0>
|
||||
<#list commonAnnotations?keys as key>
|
||||
"${key}": "${commonAnnotations[key]?json_string}"<#if key?has_next>,</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -101,7 +101,8 @@
|
||||
"help/alert_feishu",
|
||||
"help/alert_console",
|
||||
"help/alert_enterprise_wechat_app",
|
||||
"help/alert_smn"
|
||||
"help/alert_smn",
|
||||
"help/alert_notification_template"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 353 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 420 KiB |
@@ -524,7 +524,9 @@
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>${maven-surefire-plugin.version}</version>
|
||||
<configuration>
|
||||
<argLine>--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED</argLine>
|
||||
<argLine>
|
||||
${argLine} --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED
|
||||
</argLine>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- java code style check -->
|
||||
@@ -557,13 +559,16 @@
|
||||
<version>${jacoco-maven-plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare-agent</id>
|
||||
<phase>initialize</phase>
|
||||
<goals>
|
||||
<goal>prepare-agent</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
|
||||
<execution>
|
||||
<id>report</id>
|
||||
<phase>test</phase>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>report</goal>
|
||||
</goals>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
# under the License.
|
||||
|
||||
name: setup-deps
|
||||
description: Install host system dependencies
|
||||
description: Install host system dependencies (with mvnd)
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
@@ -26,3 +26,18 @@ runs:
|
||||
with:
|
||||
distribution: "zulu"
|
||||
java-version: 17
|
||||
|
||||
- name: Install mvnd
|
||||
shell: bash
|
||||
run: |
|
||||
MVND_VERSION=1.0.2
|
||||
curl -sL https://downloads.apache.org/maven/mvnd/${MVND_VERSION}/maven-mvnd-${MVND_VERSION}-linux-amd64.zip -o mvnd.zip
|
||||
unzip -q mvnd.zip
|
||||
mkdir -p $HOME/.local
|
||||
mv maven-mvnd-${MVND_VERSION}-linux-amd64 $HOME/.local/mvnd
|
||||
echo "$HOME/.local/mvnd/bin" >> $GITHUB_PATH
|
||||
echo "MVND_HOME=$HOME/.local/mvnd" >> $GITHUB_ENV
|
||||
|
||||
- name: Verify mvnd installation
|
||||
shell: bash
|
||||
run: mvnd --version
|
||||
@@ -92,6 +92,11 @@ export class AlertIntegrationComponent implements OnInit {
|
||||
id: 'huaweicloud-ces',
|
||||
name: this.i18nSvc.fanyi('alert.integration.source.huaweicloud-ces'),
|
||||
icon: 'assets/img/integration/huaweicloud.svg'
|
||||
},
|
||||
{
|
||||
id: 'volcengine',
|
||||
name: this.i18nSvc.fanyi('alert.integration.source.volcengine'),
|
||||
icon: 'assets/img/integration/volcengine.svg'
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -137,7 +137,13 @@
|
||||
<div class="monitor-list-header">
|
||||
<div class="monitor-header-actions">
|
||||
<label nz-checkbox [(ngModel)]="checkedAll" (ngModelChange)="onAllChecked($event)"></label>
|
||||
<nz-pagination [(nzPageIndex)]="pageIndex" [nzTotal]="total" (nzPageIndexChange)="onPageIndexChange($event)" nzSimple></nz-pagination>
|
||||
<nz-pagination
|
||||
[(nzPageIndex)]="pageIndex"
|
||||
[nzPageSize]="pageSize"
|
||||
[nzTotal]="total"
|
||||
(nzPageIndexChange)="onPageIndexChange($event)"
|
||||
nzSimple
|
||||
></nz-pagination>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
> Send Volcano Engine Cloud Monitor alerts to the HertzBeat alert platform via Webhook.
|
||||
|
||||
### Configure Volcano Engine Alert Callback
|
||||
|
||||
1. Log in to the Volcano Engine Cloud Monitor [Callback Address Management page](https://console.volcengine.com/cloud-monitor/notice/webhook)
|
||||
2. Click **Create Callback Address**
|
||||
3. On the creation page:
|
||||
- Select `General Address Callback` as the Callback Type
|
||||
- Enter HertzBeat's Webhook URL in the Callback Address field:
|
||||
```
|
||||
http://{your_system_host}/api/alerts/report/volcengine
|
||||
```
|
||||
|
||||
### Bind Alert Policy
|
||||
|
||||
1. Log in to the Volcano Engine Cloud Monitor [Alert Policy Configuration page](https://console.volcengine.com/cloud-monitor/alert/strategy)
|
||||
2. Create a new policy or edit an existing one. In the notification settings:
|
||||
|
||||
- Set Notification Method to **Manual Notification**
|
||||
- Check **Alert Callback** under Notification Channel
|
||||
- Select the callback address created earlier
|
||||
|
||||
3. Save the alert policy
|
||||
|
||||
### Common Issues
|
||||
|
||||
#### No Alerts Received
|
||||
|
||||
- Ensure the Webhook URL is publicly accessible
|
||||
- Check server logs for incoming requests
|
||||
- Test Webhook connectivity via the Callback Address page
|
||||
|
||||
#### Alerts Not Triggering
|
||||
|
||||
- Verify policy conditions and correct callback address binding
|
||||
- Confirm the alert policy is **Enabled**
|
||||
- Check Alert History in Volcano Engine console for trigger events
|
||||
|
||||
For more details, refer to the [Volcano Engine Alert Configuration Documentation](https://www.volcengine.com/docs/6408/68122)
|
||||
@@ -0,0 +1,35 @@
|
||||
> Volcano Engine Cloudの監視のアラームをWebhookを介してHertzbeatアラートプラットフォームに送信します。
|
||||
|
||||
### Volcanoエンジンアラームコールバックを構成します
|
||||
|
||||
1. 火山エンジンクラウドの監視にログイン[コールバックアドレス管理ページ](https://console.volcengine.com/cloud-monitor/notice/webhook)
|
||||
2. **をクリックしてコールバックアドレスを作成します**
|
||||
3. コールバックアドレス作成ページの基本情報を入力し、コールバックタイプで「汎用アドレスコールバック」を選択します。
|
||||
4. コールバックアドレス入力ボックスに入力して、HertzBeatが提供するWebHookインターフェイスURLに入ります。
|
||||
|
||||
```
|
||||
http:// {your_system_host}/api/alerts/report/volcengine
|
||||
```
|
||||
|
||||
### バインドアラームポリシー
|
||||
|
||||
1. 火山エンジンクラウドの監視にログイン[アラームポリシーの構成ページ](https://console.volcengine.com/cloud-monitor/alert/strategy)
|
||||
2. 新しいポリシーを作成するか、アラームモードの構成で既存のポリシーを編集します
|
||||
- 通知方法を**手動通知**として選択します
|
||||
- アラームチャネルを確認**アラームコールバック**
|
||||
- アラームコールバックで作成されたコールバックアドレスを選択します
|
||||
3. アラームポリシーを保存します
|
||||
|
||||
### よくある質問
|
||||
|
||||
#### は受け取っていません
|
||||
- パブリックネットワークによってWebHook URLにアクセスできることを確認してください
|
||||
- サーバーログにリクエストレコードがあるかどうかを確認します
|
||||
- Webhookが火山エンジンコールバックアドレスページで利用可能であるかどうかをテストします
|
||||
|
||||
#### アラームはトリガーされていません
|
||||
- アラームポリシーが正しい状態にあり、正しいコールバックアドレスが通知チャネルとしてバインドされていることを確認してください
|
||||
- アラームポリシーが「有効」状態であることを確認してください
|
||||
- 火山エンジンクラウド監視コンソールのアラーム履歴を表示して、ポリシーがトリガーされていることを確認する
|
||||
|
||||
詳細については、[Volcengine Alarm Configuration Document](https://www.volcengine.com/docs/6408/68122を参照してください)
|
||||
@@ -0,0 +1,42 @@
|
||||
> Envie os alertas do Volcano Engine Cloud Monitoring para a plataforma de alertas da HertzBeat via Webhook.
|
||||
|
||||
### Configurar o retorno de chamada de alarme do Volcano Engine
|
||||
|
||||
1. Acesse o Volcano Engine Cloud Monitoring [Página de Gerenciamento de Endereços de Retorno de Chamada](https://console.volcengine.com/cloud-monitor/notice/webhook)
|
||||
|
||||
2. Clique em **Criar endereço de retorno de chamada**
|
||||
|
||||
3. Preencha as informações básicas na página de criação de endereço de retorno de chamada e selecione `Retorno de chamada de endereço geral` para o tipo de retorno.
|
||||
|
||||
4. Preencha a URL do endereço da interface do Webhook fornecida pela HertzBeat na caixa de entrada de endereço de retorno de chamada:
|
||||
|
||||
```
|
||||
http://{host_do_seu_sistema}/api/alerts/report/volcengine
|
||||
```
|
||||
|
||||
### Vincular estratégia de alarme
|
||||
|
||||
1. Acesse o Volcano Engine Cloud Monitoring [Página de Configuração da Estratégia de Alarme](https://console.volcengine.com/cloud-monitor/alert/strategy)
|
||||
|
||||
2. Crie uma nova estratégia ou edite uma existente na configuração do método de alarme.
|
||||
|
||||
- Selecione o método de notificação como **Manual notificação**
|
||||
|
||||
- Verifique o **Retorno de chamada de alarme** para o canal de alarme
|
||||
|
||||
- Selecione o endereço de retorno de chamada criado na etapa anterior no retorno de chamada de alarme
|
||||
|
||||
3. Salvar política de alarme
|
||||
### Perguntas frequentes
|
||||
|
||||
#### Alarme não recebido
|
||||
- Certifique-se de que a URL do Webhook esteja acessível à rede pública
|
||||
- Verifique o log do servidor para registros de solicitações
|
||||
- Teste se o Webhook está disponível na página de endereço de retorno de chamada do Volcano Engine
|
||||
|
||||
#### Alarme não disparado
|
||||
- Certifique-se de que as condições da política de alarme estejam corretas e vincule o endereço de retorno de chamada correto como canal de notificação
|
||||
- Certifique-se de que a política de alarme esteja no estado `habilitado`
|
||||
- Verifique o histórico de alarmes no Console de Monitoramento em Nuvem do Volcano Engine para garantir que a política seja disparada
|
||||
|
||||
Para obter mais informações, consulte o [Documento de Configuração de Alarme do Volcano Engine](https://www.volcengine.com/docs/6408/68122)
|
||||
@@ -0,0 +1,35 @@
|
||||
> 将火山引擎云监控的告警通过 Webhook 方式发送到 HertzBeat 告警平台。
|
||||
|
||||
### 配置火山引擎告警回调
|
||||
|
||||
1. 登录火山引擎云监控[回调地址管理页面](https://console.volcengine.com/cloud-monitor/notice/webhook)
|
||||
2. 点击**创建回调地址**
|
||||
3. 在回调地址创建页面填写基础信息,回调类型选择`通用地址回调`
|
||||
4. 回调地址输入框中填写 HertzBeat 提供的 Webhook 接口地址 URL:
|
||||
|
||||
```
|
||||
http://{your_system_host}/api/alerts/report/volcengine
|
||||
```
|
||||
|
||||
### 绑定告警策略
|
||||
|
||||
1. 登录火山引擎云监控[告警策略配置页面](https://console.volcengine.com/cloud-monitor/alert/strategy)
|
||||
2. 创建新策略或编辑已有策略,在告警方式配置中
|
||||
- 选择通知方式为**手动通知**
|
||||
- 告警渠道勾选**告警回调**
|
||||
- 告警回调中选择上一步创建的回调地址
|
||||
3. 保存告警策略
|
||||
yar
|
||||
### 常见问题
|
||||
|
||||
#### 未收到告警
|
||||
- 确保 Webhook URL 可以被公网访问
|
||||
- 检查服务器日志是否有请求记录
|
||||
- 在火山引擎回调地址页面测试 Webhook 是否可用
|
||||
|
||||
#### 告警未触发
|
||||
- 确保告警策略的条件正确,并且绑定正确的回调地址作为通知渠道
|
||||
- 确保告警策略为`启用`状态
|
||||
- 在火山引擎云监控控制台中查看告警历史,确保策略被触发
|
||||
|
||||
更多信息请参考 [火山引擎告警配置文档](https://www.volcengine.com/docs/6408/68122)
|
||||
@@ -0,0 +1,35 @@
|
||||
> 將火山引擎雲監控的告警通過 Webhook 方式發送到 HertzBeat 告警平台。
|
||||
|
||||
### 配置火山引擎告警回調
|
||||
|
||||
1. 登錄火山引擎雲監控[回調地址管理頁面](https://console.volcengine.com/cloud-monitor/notice/webhook)
|
||||
2. 點擊**創建回調地址**
|
||||
3. 在回調地址創建頁面填寫基礎信息,回調類型選擇`通用地址回調`
|
||||
4. 回調地址輸入框中填寫 HertzBeat 提供的 Webhook 接口地址 URL:
|
||||
|
||||
```
|
||||
http://{your_system_host}/api/alerts/report/volcengine
|
||||
```
|
||||
|
||||
### 綁定告警策略
|
||||
|
||||
1. 登錄火山引擎雲監控[告警策略配置頁面](https://console.volcengine.com/cloud-monitor/alert/strategy)
|
||||
2. 創建新策略或編輯已有策略,在告警方式配置中
|
||||
- 選擇通知方式為**手動通知**
|
||||
- 告警渠道勾選**告警回調**
|
||||
- 告警回調中選擇上一步創建的回調地址
|
||||
3. 保存告警策略
|
||||
|
||||
### 常見問題
|
||||
|
||||
#### 未收到告警
|
||||
- 確保 Webhook URL 可以被公網訪問
|
||||
- 檢查服務器日誌是否有請求記錄
|
||||
- 在火山引擎回調地址頁面測試 Webhook 是否可用
|
||||
|
||||
#### 告警未觸發
|
||||
- 確保告警策略的條件正確,並且綁定正確的回調地址作為通知渠道
|
||||
- 確保告警策略為`啟用`狀態
|
||||
- 在火山引擎雲監控控制台中查看告警歷史,確保策略被觸發
|
||||
|
||||
更多信息請參考 [火山引擎告警配置文檔](https://www.volcengine.com/docs/6408/68122)
|
||||
@@ -1,15 +1,21 @@
|
||||
> HertzBeat 对外提供 api 接口,外部系统可以通过 Webhook 方式调用此接口将告警数据推送到 HertzBeat 告警平台。
|
||||
HertzBeat 提供 API 接口,外部系统可以通过 Webhook 方式调用此接口,将告警数据推送到 HertzBeat 告警平台。
|
||||
|
||||
### 接口端点
|
||||
|
||||
|
||||
## 接口端点
|
||||
|
||||
`POST /api/alerts/report`
|
||||
|
||||
### 请求头
|
||||
|
||||
- `Content-Type`: `application/json`
|
||||
- `Authorization`: `Bearer {token}`
|
||||
|
||||
### 请求体
|
||||
## 请求头
|
||||
|
||||
* `Content-Type`: `application/json`
|
||||
* `Authorization`: `Bearer {token}`
|
||||
|
||||
|
||||
|
||||
## 请求体
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -30,30 +36,32 @@
|
||||
}
|
||||
```
|
||||
|
||||
字段說明
|
||||
### 字段说明
|
||||
|
||||
- `labels`: 告警標籤
|
||||
- `alertname`: 告警規則名稱
|
||||
- `priority`: 告警級別 (warning, critical)
|
||||
- `instance`: 告警實例
|
||||
- `annotations`: 告警註釋信息
|
||||
- `summary`: 告警摘要
|
||||
- `description`: 告警詳細描述
|
||||
- `content`: 告警內容
|
||||
- `status`: 告警狀態 (firing, resolved)
|
||||
- `triggerTimes`: 告警觸發次數
|
||||
- `startAt`: 告警開始時間
|
||||
- `activeAt`: 告警激活時間
|
||||
- `endAt`: 告警結束時間
|
||||
* `labels`: 告警标签
|
||||
* `alertname`: 告警规则名称
|
||||
* `priority`: 告警级别 (`warning`, `critical`)
|
||||
* `instance`: 告警实例
|
||||
* `annotations`: 告警注释信息
|
||||
* `summary`: 告警摘要
|
||||
* `description`: 告警详细描述
|
||||
* `content`: 告警内容
|
||||
* `status`: 告警状态 (`firing`, `resolved`)
|
||||
* `triggerTimes`: 告警触发次数
|
||||
* `startAt`: 告警开始时间
|
||||
* `activeAt`: 告警激活时间
|
||||
* `endAt`: 告警结束时间
|
||||
|
||||
|
||||
### 配置验证
|
||||
|
||||
- 第三方系统触发告警后通过 webhook 回调 HertzBeat 的 `/api/alerts/report` 接口,将告警数据推送到 HertzBeat 告警平台。
|
||||
- 在 HertzBeat 告警平台中对告警数据处理查看,验证告警数据是否正确。
|
||||
## 配置验证
|
||||
|
||||
* 第三方系统触发告警后,通过 Webhook 回调 HertzBeat 的 `/api/alerts/report` 接口,将告警数据推送到 HertzBeat 告警平台。
|
||||
* 在 HertzBeat 告警平台中处理并查看告警数据,验证告警数据是否正确。
|
||||
|
||||
|
||||
### 数据流转:
|
||||
|
||||
## 数据流转
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
@@ -67,7 +75,8 @@ graph LR
|
||||
```
|
||||
|
||||
|
||||
### 常见问题
|
||||
|
||||
- 确保 HertzBeat URL 可以被第三方系统服务器访问。
|
||||
- 检查第三方系统日志中是否有告警发送成功失败的消息。
|
||||
## 常见问题
|
||||
|
||||
* 确保 HertzBeat URL 可以被第三方系统服务器访问。
|
||||
* 检查第三方系统日志中是否有告警发送成功或失败的消息。
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
"alert.integration.source.zabbix": "Zabbix",
|
||||
"alert.integration.source.alibabacloud-sls": "AlibabaCloud-SLS",
|
||||
"alert.integration.source.huaweicloud-ces": "Huawei Cloud Eye",
|
||||
"alert.integration.source.volcengine": "Volcengine Monitoring",
|
||||
"alert.integration.token.desc": "Token you generated that can be used to access the HertzBeat API.",
|
||||
"alert.integration.token.new": "Click to Generate Token",
|
||||
"alert.integration.token.notice": "Token only be displayed once. Please keep your token secure. Do not share it with others.",
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
"alert.integration.source.zabbix": "Zabbix",
|
||||
"alert.integration.source.alibabacloud-sls": "AlibabaCloud-SLS",
|
||||
"alert.integration.source.huaweicloud-ces": "Huawei Cloud Eye",
|
||||
"alert.integration.source.volcengine":"火山エンジン監視",
|
||||
"alert.integration.token.desc": "HertzBeat APIにアクセスするために生成したトークン。",
|
||||
"alert.integration.token.new": "トークンを生成するにはクリック",
|
||||
"alert.integration.token.notice": "トークンは一度だけ表示されます。トークンを安全に保管し、他人と共有しないでください。",
|
||||
|
||||
+273
-628
@@ -73,303 +73,6 @@
|
||||
"intervals": "Intervalos",
|
||||
"intervals.tip": "Intervalo de tempo para coleta periódica de dados, em segundos",
|
||||
"question.link": "https://hertzbeat.apache.org/docs/help/issue/",
|
||||
"alert.setting.name": "Nome do limite",
|
||||
"alert.setting.type": "Tipo de limite",
|
||||
"alert.setting.name.tip": "O nome da regra de limite precisa ser exclusivo",
|
||||
"alert.setting.new.periodic": "Adicionar novo limite do plano",
|
||||
"alert.setting.new.realtime": "Adicionado limite em tempo real",
|
||||
"alert.setting.period": "Ciclo de execução",
|
||||
"alert.setting.period.placeholder": "Insira o período de execução, mínimo de 60 segundos",
|
||||
"alert.setting.new": "Nova Regra de Limite",
|
||||
"alert.setting.edit": "Editar Regra de Limite",
|
||||
"alert.setting.edit.periodic": "Editar limiar do plano",
|
||||
"alert.setting.edit.realtime": "Editar limites em tempo real",
|
||||
"alert.setting.delete": "Excluir Regra de Limite",
|
||||
"alert.setting.export": "Exportar Regra",
|
||||
"alert.setting.import": "Importar Regra",
|
||||
"alert.setting.target": "Métrica Alvo",
|
||||
"alert.setting.target.place-holder": "Pesquise ou selecione a métrica alvo",
|
||||
"alert.setting.expr": "Expressão de Disparo do Limite",
|
||||
"alert.setting.trigger": "Disparar alarmes e atualizar o status do monitor",
|
||||
"alert.setting.rule": "Regra de Limite",
|
||||
"alert.setting.number": "Numérico",
|
||||
"alert.setting.string": "Texto",
|
||||
"alert.setting.time": "Tempo",
|
||||
"alert.setting.bind.available": "Monitoramento opcional",
|
||||
"alert.setting.bind.manage": "Monitoramento relacionado",
|
||||
"alert.setting.bind.monitors": "Monitoramento relacionado",
|
||||
"alert.setting.bind.monitors.tip": "Configure essa regra de limiar para aplicar à tarefa de monitoramento especificada, e o padrão é que todos os aplicativos não estão associados.",
|
||||
"alert.setting.bind.need-save": "Selecione primeiro o tipo de indicador e depois realize a associação de monitoramento.",
|
||||
"alert.setting.bind.selected": "Monitoramento selecionado",
|
||||
"alert.setting.rule.label": "Configuração gráfica de regras de limite de alarme, suporta múltiplas regras &&",
|
||||
"alert.setting.rule.metric.place-holder": "Selecione a métrica",
|
||||
"alert.setting.rule.switch-expr.0": "Limite de Modelo",
|
||||
"alert.setting.rule.switch-expr.1": "Limite de Codificação",
|
||||
"alert.setting.rule.operator": "Operador",
|
||||
"alert.setting.rule.operator.str-equals": "igual",
|
||||
"alert.setting.rule.operator.str-no-equals": "não igual",
|
||||
"alert.setting.rule.operator.str-contains": "contém",
|
||||
"alert.setting.rule.operator.str-no-contains": "não contém",
|
||||
"alert.setting.rule.operator.str-matches": "corresponde",
|
||||
"alert.setting.rule.operator.str-no-matches": "não corresponde",
|
||||
"alert.setting.rule.operator.exists": "valor existe",
|
||||
"alert.setting.rule.operator.no-exists": "valor não existe",
|
||||
"alert.setting.rule.string-value.place-holder": "Digite o texto",
|
||||
"alert.setting.rule.numeric-value.place-holder": "Digite o número",
|
||||
"alert.setting.times": "Número de Disparos",
|
||||
"alert.setting.times.tip": "Defina quantas vezes o limite deve ser disparado antes de enviar um alerta",
|
||||
"alert.setting.template": "Modelo de Notificação",
|
||||
"alert.setting.template.tip": "Variáveis de ambiente de modelo de notificação suportadas",
|
||||
"alert.setting.template.label": "O modelo de informação de notificação enviado após o disparo do alarme, veja as variáveis de ambiente do modelo acima",
|
||||
"alert.setting.template.example": "Digite o modelo de notificação. Ex: ${app}.${metrics}.${metric} valor está muito alto",
|
||||
"alert.setting.template.monitor-type": "Nome do Tipo de Monitor",
|
||||
"alert.setting.template.metrics-name": "Nome da Métrica",
|
||||
"alert.setting.template.metric-name": "Nome da Métrica",
|
||||
"alert.setting.template.metric-value": "Valor da Métrica",
|
||||
"alert.setting.template.other-value": "Outro Valor da Métrica",
|
||||
"alert.setting.template.vars.app": "Tipo de aplicativo",
|
||||
"alert.setting.template.vars.instance": "ID da instância",
|
||||
"alert.setting.template.vars.instance-name": "Nome da instância",
|
||||
"alert.setting.template.vars.instance-host": "Exemplo de host",
|
||||
"alert.setting.template.vars.metrics": "Nome métrico",
|
||||
"alert.setting.template.vars.threshold": "expressão limite",
|
||||
"alert.setting.template.vars.time": "Tempo de gatilho",
|
||||
"alert.setting.template.vars.tip": "Inserir indicador ou operador",
|
||||
"alert.setting.template.vars.value": "Valor de gatilho",
|
||||
"alert.setting.default": "Padrão Global",
|
||||
"alert.setting.default.tip": "Se esta configuração de limite de alarme se aplica a todos os monitoramentos deste tipo globalmente",
|
||||
"alert.setting.enable": "Habilitar Limite",
|
||||
"alert.setting.enable.tip": "Esta configuração de limite de alarme está habilitada ou desabilitada",
|
||||
"alert.setting.recover-notice": "Notificação de Recuperação",
|
||||
"alert.setting.recover-notice.tip": "Se deve enviar a notificação correspondente quando o alarme for resolvido sob esta regra de limite",
|
||||
"alert.setting.connect": "Associar Monitores ao Limite de Alarme",
|
||||
"alert.setting.connect.left": "Não Associado",
|
||||
"alert.setting.connect.right": "Associado",
|
||||
"alert.setting.expr.tip": "Variáveis de ambiente e operadores suportados na expressão de disparo do limite",
|
||||
"alert.setting.expr.label": "Calcule e julgue se o limite foi disparado de acordo com esta expressão. As variáveis de ambiente e operadores da expressão são mostrados acima.",
|
||||
"alert.setting.expr.example": "Calcule se o limite foi disparado de acordo com esta expressão. Ex",
|
||||
"alert.setting.priority.tip": "O nível de alarme que dispara o limite, do baixo para o alto: Aviso, Crítico, Emergência",
|
||||
"alert.setting.target.tip": "O objeto métrico selecionado",
|
||||
"alert.setting.target.other": "Outros objetos métricos da linha",
|
||||
"alert.setting.target.system_value_row_count": "Contagem de linhas de valor do Sistema-Métricas",
|
||||
"alert.setting.operator": "Funções de operador suportadas",
|
||||
"alert.setting.search": "Pesquisar Limite",
|
||||
"alert.severity": "Nível de alarme",
|
||||
"alert.severity.0": "Alarme de emergência",
|
||||
"alert.severity.1": "Alarme sério",
|
||||
"alert.severity.2": "Alerta de aviso",
|
||||
"alert.severity.all": "Todos",
|
||||
"alert.silence.new": "Nova Estratégia de Silêncio",
|
||||
"alert.silence.edit": "Editar Estratégia de Silêncio",
|
||||
"alert.silence.delete": "Excluir Estratégia de Silêncio",
|
||||
"alert.silence.name": "Nome da Estratégia de Silêncio",
|
||||
"alert.silence.match-all": "Corresponder a Todos",
|
||||
"alert.silence.priority": "Corresponder Prioridade",
|
||||
"alert.silence.type.once": "Silêncio Único",
|
||||
"alert.silence.type.cyc": "Silêncio Periódico",
|
||||
"alert.silence.type": "Tipo de Silêncio",
|
||||
"alert.silence.tags": "Corresponder Tags",
|
||||
"alert.silence.time": "Período de Silêncio",
|
||||
"alert.silence.times": "Número de Alertas Silenciados",
|
||||
"alert.silence.enable": "Habilitar Silêncio",
|
||||
"alert.status": "Estado do alarme",
|
||||
"alert.status.all": "Todos os status",
|
||||
"alert.status.firing": "Alarmante",
|
||||
"alert.status.resolved": "Restaurado",
|
||||
"alert.converge.new": "Nova Estratégia de Convergência",
|
||||
"alert.converge.edit": "Editar Estratégia de Convergência",
|
||||
"alert.converge.delete": "Excluir Estratégia de Convergência",
|
||||
"alert.converge.name": "Nome da Estratégia",
|
||||
"alert.converge.match-all": "Corresponder a Todos",
|
||||
"alert.converge.priority": "Corresponder Prioridade",
|
||||
"alert.converge.tags": "Corresponder Tags",
|
||||
"alert.converge.repeat": "Critério de Repetição de Alerta",
|
||||
"alert.converge.repeat-rule": "As tags e a prioridade do alerta são as mesmas",
|
||||
"alert.converge.eval-interval": "Intervalo de Convergência de Repetição de Alerta (s)",
|
||||
"alert.converge.enable": "Habilitar Convergência",
|
||||
"alert.center.delete": "Excluir Alertas",
|
||||
"alert.center.clear": "Limpar Tudo",
|
||||
"alert.center.deal": "Marcar como Processado",
|
||||
"alert.center.no-deal": "Marcar como Pendente",
|
||||
"alert.center.search": "Pesquisar Conteúdo do Alerta",
|
||||
"alert.center.filter-status": "Status do Alerta",
|
||||
"alert.center.filter-priority": "Prioridade do Alerta",
|
||||
"alert.center.target": "Métrica Alvo",
|
||||
"alert.center.monitor": "Monitor Pertence",
|
||||
"alert.center.priority": "Prioridade",
|
||||
"alert.center.content": "Conteúdo do Alerta",
|
||||
"alert.center.tags": "Tags",
|
||||
"alert.center.status": "Status",
|
||||
"alert.center.time": "Hora do Alerta",
|
||||
"alert.center.time.tip": "Alertas foram disparados {{times}} vezes durante este período de alerta",
|
||||
"alert.center.first-time": "Hora de Início",
|
||||
"alert.center.last-time": "Última Hora",
|
||||
"alert.center.confirm.delete": "Confirme se deseja excluir!",
|
||||
"alert.center.confirm.clear-all": "Confirme se deseja limpar todos os alertas!",
|
||||
"alert.center.notify.no-mark": "Nenhum item selecionado para marcação!",
|
||||
"alert.center.confirm.mark-done-batch": "Confirme se deseja marcar como processado em lote!",
|
||||
"alert.center.confirm.mark-done": "Confirme se deseja marcar como processado!",
|
||||
"alert.center.confirm.mark-no-batch": "Confirme se deseja marcar como pendente em lote!",
|
||||
"alert.center.confirm.mark-no": "Confirme se deseja marcar como pendente!",
|
||||
"alert.help.notice": "A notificação é usada para configurar o destinatário da mensagem de alarme e o método de recebimento. A mensagem de alarme será enviada ao destinatário de forma especificada (suporta email, discord, webhook, etc). <a href='https://hertzbeat.apache.org/zh-cn/docs/help/alert_webhook'>Clique aqui para ver os passos de configuração.</a>.<br>“<i>Modelo de Notificação</i>” é o modelo de estrutura de conteúdo da mensagem. O modelo embutido é usado por padrão ou você pode personalizar o modelo para personalizar a estrutura de notificação da mensagem.<br><span class='help_module_span'>Nota⚠\uFE0F: Após configurar o “<i>Destinatário</i>”, você também precisa configurar a “<i>Política de Notificação</i>” para especificar quais mensagens são enviadas para quais destinatários.</span><a href='https://hertzbeat.apache.org/docs/help/alert_email'> Clique aqui para ver possíveis problemas</a>.",
|
||||
"alert.help.notice.link": "https://hertzbeat.apache.org/docs/help/alert_email",
|
||||
"alert.help.converge": "A Convergência de Alarmes suporta a deduplicação e convergência de mensagens de alarme repetidas dentro de um período de tempo especificado. <br> Clique em \"<i>Nova Estratégia de Convergência</i>\" e configure o período de tempo para evitar um grande número de alarmes repetitivos que podem anestesiar o destinatário do alarme.",
|
||||
"alert.help.converge.link": "https://hertzbeat.apache.org",
|
||||
"alert.help.center": "O Centro de Alarmes é o centro de processamento de notificações para todas as mensagens de alarme disparadas, incluindo alarmes disparados por limites internos do sistema e informações de alarme acessadas através de canais de alarme externos de terceiros. <br> O Hertzbeat suporta operações em lote, como consulta de alarmes, marcação de processamento, não processados, exclusão de alarmes e limpeza.",
|
||||
"alert.help.center.link": "https://hertzbeat.apache.org/docs/help/guide",
|
||||
"alert.help.setting": "As Regras de Limite são usadas para o gerenciamento de regras de limite de alarme para métricas. Clique em \"<i>Novo Limite</i>\" para configurar o limite de alarme para métricas de monitoramento. O Hertzbeat disparará alarmes com base no limite e nos dados das métricas.<br>Nota⚠\uFE0F: A mensagem de alarme que foi disparada pode ser verificada no [Centro de Alarmes], e você também pode configurar o método de notificação e os destinatários em [Notificação].",
|
||||
"alert.help.setting.link": "https://hertzbeat.apache.org/docs/help/alert_threshold",
|
||||
"alert.help.silence": "O gerenciamento de Silêncio de Alarmes é usado quando você não quer ser perturbado durante a manutenção do sistema ou nos fins de semana. <br> Clique em \"<i>Nova Estratégia de Silêncio</i>\" e configure o período de tempo para bloquear mensagens para que você não seja perturbado durante os intervalos.",
|
||||
"alert.help.silence.link": "https://hertzbeat.apache.org/docs",
|
||||
"alert.help.group": "O agrupamento de convergência suporta combinar alarmes para rótulos de agrupamento especificados, desduplicação e convergência dos mesmos alarmes repetidos para o período. Você pode clicar em \"<i> Adicionar política de agrupamento </i>\" e configurá -la. <br> Quando a regra do limiar aciona o relatório de alarme ou alarme externo, ele entrará na convergência do pacote para conduzir o agrupamento de alarme e o alarme é desduplicado para evitar um grande número de mensagens de alarme causando tempestades de alarme.",
|
||||
"alert.help.group.link": "https://hertzbeat.apache.org/docs/#%E5%91%8A%E8%AD%A6%E6%94%B6%E6%95%9B",
|
||||
"alert.inhibit.delete": "Excluir regras de supressão",
|
||||
"alert.inhibit.edit": "Editar regras de supressão",
|
||||
"alert.inhibit.enable.tip": "Se deve ativar esta regra de supressão",
|
||||
"alert.inhibit.equal_labels": "Tags iguais",
|
||||
"alert.inhibit.equal_labels.common": "Tags comuns",
|
||||
"alert.inhibit.equal_labels.custom": "Tags personalizadas",
|
||||
"alert.inhibit.equal_labels.more": "Existem também {{count}} tags",
|
||||
"alert.inhibit.equal_labels.placeholder": "Digite o nome da tag e pressione Enter ou selecione na lista suspensa",
|
||||
"alert.inhibit.equal_labels.tip": "As chaves de tag e os valores correspondentes dos alarmes de origem e dos alarmes de destino devem ser iguais. As chaves de tag comuns incluem alertname, instância, gravidade, etc.",
|
||||
"alert.inhibit.name": "Suprimir nome da regra",
|
||||
"alert.inhibit.name.tip": "Um nome que identifique esta regra de supressão precisa ser exclusivo",
|
||||
"alert.inhibit.new": "Adicionado regras de supressão",
|
||||
"alert.inhibit.source_labels": "etiqueta de origem",
|
||||
"alert.inhibit.source_labels.tip": "Quando um alarme contém essas tags, o alarme alvo será suprimido",
|
||||
"alert.inhibit.target_labels": "Tags de destino",
|
||||
"alert.inhibit.target_labels.tip": "Alarmes que correspondem a essas tags serão suprimidos",
|
||||
"alert.integration.source": "Fonte de alarme integrada",
|
||||
"alert.integration.source.alertmanager": "Alertmanager",
|
||||
"alert.integration.source.prometheus": "Prometheus",
|
||||
"alert.integration.source.skywalking": "SkyWalking",
|
||||
"alert.integration.source.tencent": "Monitoramento de nuvem Tencent",
|
||||
"alert.integration.source.webhook": "PadrãoWebhook",
|
||||
"alert.integration.source.alibabacloud-sls": "AlibabaCloud-SLS",
|
||||
"alert.integration.source.huaweicloud-ces": "Huawei Cloud Eye",
|
||||
"alert.integration.token.desc": "O token gerado pode ser usado para acessar a API HertzBeat",
|
||||
"alert.integration.token.new": "Clique para gerar token",
|
||||
"alert.integration.token.notice": "Este conteúdo será exibido apenas uma vez, por favor guarde seu token adequadamente e não o divulgue a terceiros.",
|
||||
"alert.integration.token.title": "Token de autenticação de acesso",
|
||||
"alert.notice.template": "Modelo de Notificação",
|
||||
"alert.notice.template.new": "Novo Modelo",
|
||||
"alert.notice.template.edit": "Editar Modelo",
|
||||
"alert.notice.template.show": "Ver Conteúdo do Modelo",
|
||||
"alert.notice.template.delete": "Excluir Modelo",
|
||||
"alert.notice.template.name": "Nome do Modelo",
|
||||
"alert.notice.template.type": "Tipo de Notificação",
|
||||
"alert.notice.template.preset": "Tipo de Modelo",
|
||||
"alert.notice.template.preset.true": "Pré-definido pelo Sistema",
|
||||
"alert.notice.template.preset.false": "Personalizado pelo Usuário",
|
||||
"alert.notice.template.content": "Conteúdo do Modelo",
|
||||
"alert.notice.template.placeholder": "Selecione um modelo",
|
||||
"alert.notice.receiver": "Destinatário da Notificação",
|
||||
"alert.notice.receiver.new": "Novo Destinatário",
|
||||
"alert.notice.receiver.edit": "Editar Destinatário",
|
||||
"alert.notice.receiver.delete": "Excluir Destinatário",
|
||||
"alert.notice.receiver.people": "Destinatário",
|
||||
"alert.notice.receiver.people.placeholder": "Selecione um destinatário",
|
||||
"alert.notice.receiver.people.name": "Nome do Destinatário",
|
||||
"alert.notice.receiver.type": "Tipo de Notificação",
|
||||
"alert.notice.receiver.type.placeholder": "Selecione um tipo de notificação",
|
||||
"alert.notice.receiver.setting": "Configuração",
|
||||
"alert.notice.receiver.next": "Por favor, configure sua [Política de Notificação de Alerta] no próximo passo!",
|
||||
"alert.notice.type.sms": "SMS",
|
||||
"alert.notice.type.phone": "Telefone",
|
||||
"alert.notice.type.email": "Email",
|
||||
"alert.notice.type.userId": "ID do Usuário",
|
||||
"alert.notice.type.url": "URL",
|
||||
"alert.notice.type.wechat": "Abrir WeChat",
|
||||
"alert.notice.type.wechat-id": "WeChat OPENID",
|
||||
"alert.notice.type.WeCom-robot": "Robô WeCom",
|
||||
"alert.notice.type.WeCom-robot-key": "Chave do Robô WeCom",
|
||||
"alert.notice.type.access-token": "Token de Acesso do Robô",
|
||||
"alert.notice.type.ding": "Robô DingDing",
|
||||
"alert.notice.type.fei-shu": "Robô FeiShu",
|
||||
"alert.notice.type.fei-shu-key": "Chave do Robô FeiShu",
|
||||
"alert.notice.type.telegram-bot": "Bot do Telegram",
|
||||
"alert.notice.type.telegram-bot-token": "Token do Bot do Telegram",
|
||||
"alert.notice.type.telegram-bot-user-id": "ID do Usuário do Telegram",
|
||||
"alert.notice.type.telegram-message-thread-id": "ID da Thread do Telegram",
|
||||
"alert.notice.type.slack": "WebHook do Slack",
|
||||
"alert.notice.type.slack-webHook-url": "URL do WebHook do Slack",
|
||||
"alert.notice.type.discord": "Bot do Discord",
|
||||
"alert.notice.type.discord-bot-token": "Token do Bot do Discord",
|
||||
"alert.notice.type.discord-channel-id": "ID do Canal do Discord",
|
||||
"alert.notice.type.WeComApp": "App WeCom",
|
||||
"alert.notice.type.WeComApp-corpId": "ID da Corporação do App WeCom",
|
||||
"alert.notice.type.WeComApp-agentId": "ID do App WeCom",
|
||||
"alert.notice.type.WeComApp-appSecret": "Segredo do App WeCom",
|
||||
"alert.notice.type.WeComApp-userId": "ID do Usuário (separado por |)",
|
||||
"alert.notice.type.WeComApp-partyId": "ID do Partido (separado por |)",
|
||||
"alert.notice.type.WeComApp-tagId": "ID da Tag (separado por |)",
|
||||
"alert.notice.type.smn": "SMN da Nuvem Huawei",
|
||||
"alert.notice.type.smn-ak": "AK",
|
||||
"alert.notice.type.smn-sk": "SK",
|
||||
"alert.notice.type.smn-projectId": "ID do Projeto",
|
||||
"alert.notice.type.smn-region": "Região",
|
||||
"alert.notice.type.smn-topicUrn": "TopicUrn",
|
||||
"alert.notice.type.serverchan": "ServerChan",
|
||||
"alert.notice.type.serverchan-token": "Token do ServerChan",
|
||||
"alert.notice.type.gotify": "Gotify",
|
||||
"alert.notice.type.gotify-token": "Token do Gotify",
|
||||
"alert.notice.rule": "Política de Notificação",
|
||||
"alert.notice.rule.new": "Nova Política de Notificação",
|
||||
"alert.notice.rule.edit": "Editar Política de Notificação",
|
||||
"alert.notice.rule.delete": "Excluir Política de Notificação",
|
||||
"alert.notice.rule.name": "Nome da Política",
|
||||
"alert.notice.rule.all": "Despachar Todos",
|
||||
"alert.notice.rule.enable": "Habilitar",
|
||||
"alert.notice.rule.tag": "Corresponder Tags",
|
||||
"alert.notice.rule.tag.placeholder": "Selecione Tags",
|
||||
"alert.notice.rule.priority": "Corresponder Prioridades",
|
||||
"alert.notice.rule.priority.placeholder": "Selecione Prioridades",
|
||||
"alert.notice.rule.period": "Período de Tempo",
|
||||
"alert.notice.rule.period-chose": "Escolher Data",
|
||||
"alert.notice.rule.period.no-limit": "Ilimitado",
|
||||
"alert.notice.rule.period.custom": "Personalizado",
|
||||
"alert.notice.rule.time": "Hora da Notificação",
|
||||
"alert.notice.rule.time-start": "Hora de Início",
|
||||
"alert.notice.rule.time-end": "Hora de Término",
|
||||
"alert.notice.send-test": "Enviar Mensagem de Teste de Alerta",
|
||||
"alert.notice.send-test.notify.success": "Envio de Teste de Alerta Bem-sucedido!",
|
||||
"alert.notice.send-test.notify.failed": "Envio de Teste de Alerta Falhou!",
|
||||
"alert.notice.sender.enable": "está Habilitado",
|
||||
"alert.notice.sender.mail.host": "Endereço do Servidor de Email",
|
||||
"alert.notice.sender.mail.username": "Conta de Email",
|
||||
"alert.notice.sender.mail.password": "Senha do Email",
|
||||
"alert.notice.sender.mail.port": "Porta do Email",
|
||||
"alert.notice.sender.mail.ssl": "Habilitar SSL",
|
||||
"alert.notice.sender.mail.starttls": "Habilitar STARTTLS",
|
||||
"alert.notice.sender.mail.enable": "Habilitar Configuração de Email",
|
||||
"alert.notice.sender.sms.type": "Tipo de SMS",
|
||||
"alert.notice.sender.sms.type.tencent": "SMS Tencent",
|
||||
"alert.notice.sender.sms.type.alibaba": "SMS Alibaba",
|
||||
"alert.notice.sender.sms.tencent.secretId": "SecretId do SMS Tencent",
|
||||
"alert.notice.sender.sms.tencent.secretKey": "SecretKey do SMS Tencent",
|
||||
"alert.notice.sender.sms.tencent.signName": "Nome de Assinatura do SMS Tencent",
|
||||
"alert.notice.sender.sms.tencent.appId": "AppId do SMS Tencent",
|
||||
"alert.notice.sender.sms.tencent.templateId": "ID do Modelo do SMS Tencent",
|
||||
"alert.notify.title": "Nova notificação de alarme",
|
||||
"alert.notify.body": "Você tem um novo alarme, por favor, resolva-o a tempo!",
|
||||
"alert.export.switch-type": "Selecione o formato do arquivo de exportação!",
|
||||
"alert.export.use-type": "Exportar regras no formato de arquivo {{type}}",
|
||||
"alert.group-converge.name": "Nome da política",
|
||||
"alert.group-converge.name.tip": "Identifica o nome dessa política de agrupamento, que requer exclusiva",
|
||||
"alert.group-converge.new": "Adicionada estratégia de agrupamento",
|
||||
"alert.group-converge.repeat-interval": "Intervalo de repetição",
|
||||
"alert.group-converge.repeat-interval.tip": "Intervalo de notificação mínima para alarmes repetidos. Para alarmes acionados continuamente, evite notificações repetidas, padrão 4 horas",
|
||||
"alert.group-converge.seconds": "Segundo",
|
||||
"alert.group-converge.group-labels": "Agrupamento de tags",
|
||||
"alert.group-converge.group-labels.add": "Adicionar etiqueta",
|
||||
"alert.group-converge.group-labels.input": "Insira a tag personalizada e pressione Enter",
|
||||
"alert.group-converge.group-labels.placeholder": "Por favor, insira uma tag",
|
||||
"alert.group-converge.group-labels.tip": "As mensagens de alarme são agrupadas de acordo com a chave do rótulo do alarme, e várias chaves de rótulo são suportadas, como nome do alerta, gravidade, instância, etc.",
|
||||
"alert.group-converge.group-wait": "tempo de espera",
|
||||
"alert.group-converge.group-wait.tip": "O tempo de espera após um novo alarme é gerado, o mesmo alarme recebido nesse período será agrupado, com um padrão de 30 segundos.",
|
||||
"alert.group-converge.match-all": "Aplique tudo",
|
||||
"alert.group-converge.group-interval": "Tempo de intervalo",
|
||||
"alert.group-converge.group-interval.tip": "O intervalo de tempo mínimo para enviar notificações de alarme de grupo para evitar notificações de alarme muito frequentes. O padrão é 5 minutos.",
|
||||
"dashboard.alerts.title": "Lista de Alarmes Recentes",
|
||||
"dashboard.alerts.title-no": "Alarmes Pendentes Recentes",
|
||||
"dashboard.alerts.no": "Nenhum Alarme Pendente",
|
||||
@@ -385,284 +88,6 @@
|
||||
"dashboard.monitors.distribute": "Distribuição do Monitor",
|
||||
"menu.link.question": "FAQ",
|
||||
"menu.link.guild": "Guia do Usuário",
|
||||
"monitor_icon.center": "laptop",
|
||||
"monitor_icon.service": "appstore",
|
||||
"monitor_icon.db": "console-sql",
|
||||
"monitor_icon.os": "windows",
|
||||
"monitor_icon.mid": "cluster",
|
||||
"monitor_icon.cn": "cloud-server",
|
||||
"monitor_icon.network": "global",
|
||||
"monitor_icon.custom": "project",
|
||||
"monitor_icon.program": "code",
|
||||
"monitor_icon.cache": "group",
|
||||
"monitor_icon.bigdata": "dot-chart",
|
||||
"monitor_icon.webserver": "database",
|
||||
"monitors.center.help": "O Centro de Monitoramento é o portal de gerenciamento de recursos de monitoramento do HertzBeat. Exibe os monitores atualmente adicionados em forma de lista e suporta agrupamento por tags, filtragem de consulta e acesso para visualizar detalhes de monitoramento. <br> Você pode adicionar, modificar, excluir, pausar monitoramento, importar/exportar, gerenciar em lote e outras operações nos monitores.",
|
||||
"monitors.center.help.link": "https://hertzbeat.apache.org/docs/",
|
||||
"monitors.center.search.placeholder": "Pesquisar tipo de monitor para adicionar: Linux, Redis",
|
||||
"monitors.list": "Lista de Monitores",
|
||||
"monitors.spinning-tip.detecting": "Detecção Disponível",
|
||||
"monitors.new": "Novo",
|
||||
"monitors.new-monitor": "Novo Monitor",
|
||||
"monitors.new.success": "Novo Monitor Bem-sucedido",
|
||||
"monitors.new.failed": "Novo Monitor Falhou",
|
||||
"monitors.edit": "Editar",
|
||||
"monitors.edit.success": "Atualização do Monitor Bem-sucedida",
|
||||
"monitors.edit.failed": "Atualização do Monitor Falhou",
|
||||
"monitors.not-found": "Este Monitor Não Encontrado",
|
||||
"monitors.delete": "Excluir",
|
||||
"monitors.edit-monitor": "Editar Monitor",
|
||||
"monitors.delete-monitor": "Excluir Monitor",
|
||||
"monitors.enable": "Retomar Monitor",
|
||||
"monitors.cancel": "Pausar Monitor",
|
||||
"monitors.export": "Exportar Monitor",
|
||||
"monitors.export.switch-type": "Selecione o formato do arquivo de exportação!",
|
||||
"monitors.export.use-type": "Exportar monitores no formato de arquivo {{type}}",
|
||||
"monitors.import": "Importar Monitor",
|
||||
"monitors.search.placeholder": "Pesquisar Monitor",
|
||||
"monitors.search.tag": "Filtrar por Tag",
|
||||
"monitors.search.app": "Filtrar por Tipo",
|
||||
"monitors.total": "Total",
|
||||
"monitors.advanced": "Avançado",
|
||||
"monitors.advanced.tip": "Parâmetros de Configuração Avançada",
|
||||
"monitors.detect": "Detectar",
|
||||
"monitors.detect.success": "Detecção Bem-sucedida",
|
||||
"monitors.detect.failed": "Detecção Falhou",
|
||||
"monitors.detect.tip": "Verificar e detectar o status de disponibilidade do monitor",
|
||||
"monitors.detail.time-series.unavailable": "Incapaz de fornecer gráfico histórico, configure o banco de dados de séries temporais",
|
||||
"monitors.detail": "Detalhes do Monitor",
|
||||
"monitors.detail.auto-refresh": "Atualização Automática Após {{time}} s",
|
||||
"monitors.detail.config-refresh": "Definir Atualização Automática para {{time}} s",
|
||||
"monitors.detail.close-refresh": "Fechar Atualização Automática",
|
||||
"monitors.detail.show-basic": "Mostrar Básico do Monitor",
|
||||
"monitors.detail.name": "Nome",
|
||||
"monitors.detail.port": "Porta",
|
||||
"monitors.detail.description": "Descrição",
|
||||
"monitors.detail.status": "Status",
|
||||
"monitors.detail.basic": "Básico do Monitoramento",
|
||||
"monitors.detail.realtime": "Detalhes em Tempo Real do Monitor",
|
||||
"monitors.detail.history": "Detalhes do Gráfico Histórico do Monitor",
|
||||
"monitors.collect.time": "Tempo de Coleta",
|
||||
"monitors.collect.time.tip": "Último Tempo de Coleta",
|
||||
"monitors.detail.chart.zoom": "Ampliar",
|
||||
"monitors.detail.chart.back": "Restaurar Zoom",
|
||||
"monitors.detail.chart.save": "Salvar como Imagem",
|
||||
"monitors.detail.chart.query-1h": "Consultar 1 Hora",
|
||||
"monitors.detail.chart.query-6h": "Consultar 6 Horas",
|
||||
"monitors.detail.chart.query-1d": "Consultar 1 Dia",
|
||||
"monitors.detail.chart.query-1w": "Consultar 1 Semana",
|
||||
"monitors.detail.chart.query-1m": "Consultar 1 Mês",
|
||||
"monitors.detail.chart.query-3m": "Consultar 3 Meses",
|
||||
"monitors.detail.chart.no-data": "Nenhum Dado de Métrica",
|
||||
"monitors.detail.chart.unit": "Unidade",
|
||||
"monitors.detail.value.null": "Nenhum Valor",
|
||||
"monitor.new-monitor": "Adicionar monitoramento",
|
||||
"monitor.center.help": "O Centro de Monitoramento é a entrada para gerenciamento de recursos de monitoramento, exibindo os monitores atualmente adicionados em formato de lista, com suporte a agrupamento por tags, filtragem de pesquisa, visualização de detalhes do monitor, etc.<br>Você pode realizar operações como adicionar, modificar, excluir, pausar monitoramento, importar/exportar e gerenciamento em lote.",
|
||||
"monitor.center.help.link": "https://hertzbeat.apache.org/pt-br/docs/#centro-de-monitoramento",
|
||||
"monitor.center.search.placeholder": "Pesquisar tipos de tarefas de monitoramento a adicionar: Linux, Redis",
|
||||
"monitor.coilRegisterAddresses.tip": "Insira os endereços dos registradores",
|
||||
"monitor.collect.time": "Tempo de coleta",
|
||||
"monitor.collect.time.tip": "Último tempo de coleta",
|
||||
"monitor.collector": "Coletor",
|
||||
"monitor.collector.status.offline": "Offline",
|
||||
"monitor.collector.status.online": "Online",
|
||||
"monitor.collector.system.default": "Agendamento padrão do sistema",
|
||||
"monitor.collector.tip": "Configurar qual coletor será usado para agendar a coleta deste monitor",
|
||||
"monitor.content.tip": "3025020101040",
|
||||
"monitor.contentType.tip": "Tipo de conteúdo do corpo da requisição",
|
||||
"monitor.copy": "Copiar monitor",
|
||||
"monitor.copy-monitor": "Copiar monitor",
|
||||
"monitor.copy.failed": "Falha ao copiar o monitor",
|
||||
"monitor.copy.notify.one-select": "Selecione apenas um monitor para copiar",
|
||||
"monitor.copy.success": "Monitor copiado com sucesso",
|
||||
"monitor.delete": "Excluir",
|
||||
"monitor.delete-monitor": "Excluir monitor",
|
||||
"monitor.description": "Descrição/Nota",
|
||||
"monitor.description.tip": "Mais informações para identificar e descrever esta tarefa",
|
||||
"monitor.detail": "Detalhes do monitor",
|
||||
"monitor.detail.auto-refresh": "Atualização automática a cada {{time}} segundos",
|
||||
"monitor.detail.basic": "Informações da tarefa de monitoramento",
|
||||
"monitor.detail.chart.back": "Restaurar zoom",
|
||||
"monitor.detail.chart.no-data": "Sem dados disponíveis",
|
||||
"monitor.detail.chart.query-1d": "Consultar últimos 1 dia",
|
||||
"monitor.detail.chart.query-1h": "Consultar últimas 1 hora",
|
||||
"monitor.detail.chart.query-1m": "Consultar últimos 1 mês",
|
||||
"monitor.detail.chart.query-1w": "Consultar últimos 1 semana",
|
||||
"monitor.detail.chart.query-3m": "Consultar últimos 3 meses",
|
||||
"monitor.detail.chart.query-6h": "Consultar últimas 6 horas",
|
||||
"monitor.detail.chart.save": "Salvar imagem",
|
||||
"monitor.detail.chart.unit": "Unidade",
|
||||
"monitor.detail.chart.zoom": "Zoom na área",
|
||||
"monitor.detail.close-refresh": "Desativar atualização automática",
|
||||
"monitor.detail.config-refresh": "Configurar atualização automática a cada {{time}} segundos",
|
||||
"monitor.detail.description": "Descrição",
|
||||
"monitor.detail.history": "Detalhes históricos do monitor (gráficos)",
|
||||
"monitor.detail.name": "Nome",
|
||||
"monitor.detail.port": "Porta",
|
||||
"monitor.detail.realtime": "Dados em tempo real do monitor",
|
||||
"monitor.detail.show-basic": "Exibir atributos básicos do monitor",
|
||||
"monitor.detail.status": "Status",
|
||||
"monitor.detail.time-series.unavailable": "Dados históricos não disponíveis - configure um banco de dados de série temporal",
|
||||
"monitor.detail.value.null": "Sem dados",
|
||||
"monitor.detect": "Testar conexão",
|
||||
"monitor.detect.failed": "Falha no teste de conexão",
|
||||
"monitor.detect.success": "Conexão testada com sucesso",
|
||||
"monitor.detect.tip": "Verificar a disponibilidade do monitor",
|
||||
"monitor.edit": "Editar",
|
||||
"monitor.edit-monitor": "Editar monitor",
|
||||
"monitor.edit.failed": "Falha ao modificar o monitor",
|
||||
"monitor.edit.success": "Monitor modificado com sucesso",
|
||||
"monitor.enable": "Retomar monitoramento",
|
||||
"monitor.export": "Exportar monitor",
|
||||
"monitor.export.switch-type": "Selecione o formato do arquivo de exportação!",
|
||||
"monitor.export.use-type": "Exportar monitor no formato {{type}}",
|
||||
"monitor.grafana.enabled.label": "Habilitar Grafana",
|
||||
"monitor.grafana.enabled.tip": "Habilitar Grafana?",
|
||||
"monitor.grafana.upload.label": "Carregar modelo do Grafana",
|
||||
"monitor.grafana.upload.tip": "Carregar arquivo JSON do Grafana",
|
||||
"monitor.headerName.tip": "Nome do cabeçalho",
|
||||
"monitor.headerValue.tip": "Valor do cabeçalho",
|
||||
"monitor.holdingRegisterAddresses.tip": "Insira os endereços dos registradores",
|
||||
"monitor.host": "Host de destino",
|
||||
"monitor.host.tip": "IP ou domínio do dispositivo monitorado",
|
||||
"monitor.icon.bigdata": "dot-chart",
|
||||
"monitor.icon.cache": "group",
|
||||
"monitor.icon.center": "laptop",
|
||||
"monitor.icon.cn": "cloud-server",
|
||||
"monitor.icon.custom": "project",
|
||||
"monitor.icon.db": "console-sql",
|
||||
"monitor.icon.mid": "cluster",
|
||||
"monitor.icon.network": "global",
|
||||
"monitor.icon.os": "windows",
|
||||
"monitor.icon.program": "code",
|
||||
"monitor.icon.service": "appstore",
|
||||
"monitor.icon.webserver": "database",
|
||||
"monitor.import": "Importar monitor",
|
||||
"monitor.intervals": "Intervalo de monitoramento",
|
||||
"monitor.intervals.tip": "Intervalo de tempo para coleta periódica de dados (em segundos)",
|
||||
"monitor.keyword.tip": "Insira a palavra-chave a ser monitorada",
|
||||
"monitor.list": "Lista de monitores",
|
||||
"monitor.name": "Nome da tarefa",
|
||||
"monitor.name.tip": "Nome para identificar a tarefa de monitoramento",
|
||||
"monitor.new": "Adicionar",
|
||||
"monitor.new.failed": "Falha ao adicionar monitor",
|
||||
"monitor.new.notify.change-to-http": "HTTPS desativado - a porta foi alterada automaticamente para 80.",
|
||||
"monitor.new.notify.change-to-https": "HTTPS ativado - a porta foi alterada automaticamente para 443.",
|
||||
"monitor.new.notify.change-to-ftp": "SFTP desativado - a porta foi alterada automaticamente para 21.",
|
||||
"monitor.new.notify.change-to-sftp": "SFTP ativado - a porta foi alterada automaticamente para 22.",
|
||||
"monitor.new.success": "Monitor adicionado com sucesso",
|
||||
"monitor.not-found": "Erro na consulta - este monitor não existe",
|
||||
"monitor.path.tip": "Caminho do endpoint do exportador",
|
||||
"monitor.payload.tip": "Usado para POST/PUT",
|
||||
"monitor.privateKey.tip": "Chave privada RSA",
|
||||
"monitor.search.app": "Filtrar por tipo",
|
||||
"monitor.search.placeholder": "Pesquisar monitor",
|
||||
"monitor.search.label": "Filtrar por tag",
|
||||
"monitor.sitemap.tip": "Mapa do site (exemplo: /sitemap.xml)",
|
||||
"monitor.spinning-tip.detecting": "Testando conectividade...",
|
||||
"monitor.status": "Status da tarefa",
|
||||
"monitor.status.all": "Todos os status",
|
||||
"monitor.status.down": "Inativo",
|
||||
"monitor.status.paused": "Pausado",
|
||||
"monitor.status.unreachable": "Inacessível",
|
||||
"monitor.status.up": "Normal",
|
||||
"monitor.total": "Total",
|
||||
"monitor.uri.tip": "Caminho URI do site (sem IP/porta) Exemplo: /console",
|
||||
"monitor.url.tip": "Serviço: jmx:rmi:///jndi/rmi://host:porta/jmxrmi",
|
||||
"monitor.sshHost.tip": "Obrigatório quando túnel SSH está ativo",
|
||||
"monitor.sshPort.tip": "Obrigatório quando túnel SSH está ativo",
|
||||
"monitor.sshUsername.tip": "Obrigatório quando túnel SSH está ativo",
|
||||
"monitor.sshPrivateKey.tip": "Chave privada RSA",
|
||||
"monitor.scrape.type.static": "Estatico",
|
||||
"monitor.scrape.type.http_sd": "Http Service Discovery",
|
||||
"monitor.scrape.type.nacos_sd": "Nacos Service Discovery",
|
||||
"monitor.scrape.type.dns_sd": "Dns Service Discovery",
|
||||
"monitor.scrape.type.eureka_sd": "Eureka Service Discovery",
|
||||
"monitor.scrape.type.consul_sd": "Consul Service Discovery",
|
||||
"monitor.scrape.type.zookeeper_sd": "Zookeeper Service Discovery",
|
||||
"common.name": "Nome da Métrica",
|
||||
"common.value": "Valor da Métrica",
|
||||
"common.search": "Pesquisar",
|
||||
"common.refresh": "Atualizar",
|
||||
"common.notice": "Notificação",
|
||||
"common.ignore": "Ignorar",
|
||||
"common.edit-time": "Tempo de Atualização",
|
||||
"common.new-time": "Tempo de Criação",
|
||||
"common.edit": "Operar",
|
||||
"common.total": "Total",
|
||||
"common.yes": "Sim",
|
||||
"common.no": "Não",
|
||||
"common.mute": "Mudo",
|
||||
"common.unmute": "Ativar som",
|
||||
"common.enable": "Habilitar",
|
||||
"common.disable": "Desabilitar",
|
||||
"common.copy": "Copiar para a Área de Transferência",
|
||||
"common.copy.button": "Copiar",
|
||||
"common.notify.no-select-edit": "Nenhum item selecionado para edição!",
|
||||
"common.notify.one-select-edit": "Apenas uma seleção pode ser editada!",
|
||||
"common.confirm.delete": "Confirme se deseja excluir!",
|
||||
"common.notify.no-select-delete": "Nenhum item selecionado para exclusão!",
|
||||
"common.notify.no-select-export": "Nenhum item selecionado para exportação!",
|
||||
"common.confirm.delete-batch": "Confirme se deseja excluir em lote!",
|
||||
"common.notify.delete-success": "Exclusão Bem-sucedida!",
|
||||
"common.notify.delete-fail": "Exclusão Falhou!",
|
||||
"common.notify.new-success": "Adição Bem-sucedida!",
|
||||
"common.notify.new-fail": "Adição Falhou!",
|
||||
"common.notify.apply-success": "Aplicação Bem-sucedida!",
|
||||
"common.notify.apply-fail": "Aplicação Falhou!",
|
||||
"common.notify.operate-success": "Operação Bem-sucedida!",
|
||||
"common.notify.operate-fail": "Operação Falhou!",
|
||||
"common.notify.monitor-fail": "Consulta do Monitor Falhou!",
|
||||
"common.notify.edit-success": "Edição Bem-sucedida!",
|
||||
"common.notify.edit-fail": "Edição Falhou!",
|
||||
"common.notify.no-select-cancel": "Nenhum item selecionado para cancelamento!",
|
||||
"common.confirm.cancel-batch": "Confirme se deseja cancelar o monitor em lote!",
|
||||
"common.confirm.cancel": "Confirme se deseja cancelar o monitor!",
|
||||
"common.notify.cancel-success": "Cancelamento Bem-sucedido!",
|
||||
"common.notify.cancel-fail": "Cancelamento Falhou!",
|
||||
"common.notify.mark-success": "Marca Bem-sucedida!",
|
||||
"common.notify.mark-fail": "Marca Falhou!",
|
||||
"common.notify.no-select-enable": "Nenhum item selecionado para habilitar!",
|
||||
"common.confirm.enable-batch": "Confirme se deseja habilitar o monitor em lote!",
|
||||
"common.confirm.enable": "Confirme se deseja habilitar o monitor!",
|
||||
"common.notify.enable-success": "Habilitação Bem-sucedida!",
|
||||
"common.notify.enable-fail": "Habilitação Falhou!",
|
||||
"common.confirm.clear-cache": "Confirme se deseja limpar o cache!",
|
||||
"common.notify.clear-success": "Limpeza Bem-sucedida!",
|
||||
"common.notify.clear-fail": "Limpeza Falhou!",
|
||||
"common.notify.export-success": "Exportação Bem-sucedida!",
|
||||
"common.notify.export-fail": "Exportação Falhou!",
|
||||
"common.notify.import-success": "Importação Bem-sucedida!",
|
||||
"common.notify.import-fail": "Importação Falhou!",
|
||||
"common.notify.copy-success": "Cópia Bem-sucedida!",
|
||||
"common.button.ok": "OK",
|
||||
"common.button.new": "Novo",
|
||||
"common.button.cancel": "Cancelar",
|
||||
"common.button.return": "Retornar",
|
||||
"common.button.help": "Ajuda",
|
||||
"common.button.edit": "Editar",
|
||||
"common.button.setting": "Configuração",
|
||||
"common.button.delete": "Excluir",
|
||||
"common.button.detect": "Detectar",
|
||||
"common.annotation": "anotação",
|
||||
"common.annotation.bind": "Anotação de ligação",
|
||||
"common.annotation.bind.tip": "As anotações podem ser usadas para marcar informações da entidade, como anotações vinculativas para eventos importantes para um recurso.",
|
||||
"common.button.collapse": "Fechar",
|
||||
"common.button.confirm": "confirmar",
|
||||
"common.button.copy": "cópia",
|
||||
"common.button.copy.tip": "Clique para copiar",
|
||||
"common.button.expand": "Expandir",
|
||||
"common.button.export": "Exportar",
|
||||
"common.button.import": "Importar",
|
||||
"common.week.7": "Domingo",
|
||||
"common.week.1": "Segunda-feira",
|
||||
"common.week.2": "Terça-feira",
|
||||
"common.week.3": "Quarta-feira",
|
||||
"common.week.4": "Quinta-feira",
|
||||
"common.week.5": "Sexta-feira",
|
||||
"common.week.6": "Sábado",
|
||||
"common.time.unit.second": "Segundo",
|
||||
"common.file.select": "Selecionar Arquivo",
|
||||
"validation.email.invalid": "Email inválido!",
|
||||
"validation.phone.invalid": "Número de telefone inválido!",
|
||||
"validation.verification-code.invalid": "Código de verificação inválido, deve ter 6 dígitos!",
|
||||
@@ -745,59 +170,6 @@
|
||||
"label.value": "Valor da etiqueta",
|
||||
"labels.help": "As tags estão por toda parte, podemos aplicar tags ao agrupamento de recursos, correspondência de tags sob regras e outros cenários. O gerenciamento de tags é usado para gerenciar e manter tags de maneira unificada, incluindo adicionar, excluir, editar e outras operações. <br> Por exemplo: você pode usar tags para classificar e gerenciar recursos de monitoramento, vincular as tags do ambiente de produção e testar o ambiente dos recursos e combinar notificadores diferentes por meio de tags ao alertar.",
|
||||
"labels.help.link": "https://hertzbeat.apache.org/docs/",
|
||||
"menu.account": "Página pessoal",
|
||||
"menu.account.binding": "Vinculação de conta",
|
||||
"menu.account.center": "Centro pessoal",
|
||||
"menu.account.logout": "desistir",
|
||||
"menu.account.security": "Configurações de segurança",
|
||||
"menu.account.settings": "Configurações de Conta",
|
||||
"menu.account.trigger": "erro de gatilho",
|
||||
"menu.advanced": "Avançado",
|
||||
"menu.advanced.collector": "Cluster de coleção",
|
||||
"menu.advanced.define": "Modelo de monitoramento",
|
||||
"menu.advanced.labels": "Gerenciamento de tags",
|
||||
"menu.advanced.plugins": "Gerenciamento de plug-ins",
|
||||
"menu.advanced.status": "Página de status",
|
||||
"menu.alert": "Alarme",
|
||||
"menu.alert.center": "Central de alarme",
|
||||
"menu.alert.converge": "Convergência",
|
||||
"menu.alert.dispatch": "Notificação de mensagem",
|
||||
"menu.alert.group": "Convergência de grupo",
|
||||
"menu.alert.inhibit": "Supressão de alarme",
|
||||
"menu.alert.integration": "Acesso integrado",
|
||||
"menu.alert.setting": "Regras de limite",
|
||||
"menu.alert.silence": "Silêncio de alarme",
|
||||
"menu.clear.local.storage": "Limpe o cache local",
|
||||
"menu.dashboard": "Painel",
|
||||
"menu.extras": "Mais",
|
||||
"menu.extras.about": "sobre",
|
||||
"menu.extras.help": "Centro de ajuda",
|
||||
"menu.extras.setting": "configurar",
|
||||
"menu.extras.settings": "Configurações do sistema",
|
||||
"menu.fullscreen": "Tela cheia",
|
||||
"menu.fullscreen.exit": "Saia de tela cheia",
|
||||
"menu.lang": "linguagem",
|
||||
"menu.main": "Navegação principal",
|
||||
"menu.monitor": "monitor",
|
||||
"menu.monitor.bigdata": "Monitoramento de Big Data",
|
||||
"menu.monitor.bulletin": "Boletim personalizado",
|
||||
"menu.monitor.cache": "Monitoramento de cache",
|
||||
"menu.monitor.center": "Central de monitoramento",
|
||||
"menu.monitor.cn": "Monitoramento nativo em nuvem",
|
||||
"menu.monitor.custom": "Monitoramento personalizado",
|
||||
"menu.monitor.db": "Monitoramento do banco de dados",
|
||||
"menu.monitor.llm": "Modelo grande de IA",
|
||||
"menu.monitor.mid": "Monitoramento de middleware",
|
||||
"menu.monitor.network": "Monitoramento da rede",
|
||||
"menu.monitor.os": "Monitoramento do sistema operacional",
|
||||
"menu.monitor.program": "Monitoramento de aplicativos",
|
||||
"menu.monitor.prometheus": "Tarefas do Prometheus",
|
||||
"menu.monitor.promql": "Consulta de dados",
|
||||
"menu.monitor.server": "Monitoramento de servidor",
|
||||
"menu.monitor.service": "Monitoramento do Serviço de Aplicativo",
|
||||
"menu.monitor.webserver": "Monitoramento do servidor da web",
|
||||
"menu.more": "Mais",
|
||||
"menu.search.placeholder": "Pesquise os nomes de tarefas de monitoramento, hosts, etc.",
|
||||
"settings.server": "Configuração do Servidor de Mensagens",
|
||||
"settings.server.email": "Servidor de Email",
|
||||
"settings.server.email.setting": "Configurar Servidor de Email",
|
||||
@@ -1030,6 +402,8 @@
|
||||
"alert.help.setting.link": "https://hertzbeat.apache.org/docs/help/alert_threshold",
|
||||
"alert.help.silence": "O gerenciamento de Silêncio de Alarmes é usado quando você não quer ser perturbado durante a manutenção do sistema ou nos fins de semana. <br> Clique em \"<i>Nova Estratégia de Silêncio</i>\" e configure o período de tempo para bloquear mensagens para que você não seja perturbado durante os intervalos.",
|
||||
"alert.help.silence.link": "https://hertzbeat.apache.org/docs",
|
||||
"alert.help.integration": "Gerenciamento unificado de alarmes de diferentes plataformas de terceiros, acesso integrado às mensagens de alarme de sistemas de monitoramento e observação de terceiros, agrupamento, convergência, supressão, silenciamento e distribuição de notificações.",
|
||||
"alert.help.inhibit": "A supressão de alarmes é usada para configurar a relação de supressão entre alarmes. Quando um alarme ocorre, outros alarmes podem ser suprimidos. Por exemplo, quando um servidor cai, todos os alarmes no servidor podem ser suprimidos.",
|
||||
"alert.notice.template": "Modelo de Notificação",
|
||||
"alert.notice.template.new": "Novo Modelo",
|
||||
"alert.notice.template.edit": "Editar Modelo",
|
||||
@@ -1134,6 +508,87 @@
|
||||
"alert.integration.source.skywalking": "SkyWalking",
|
||||
"alert.integration.source.uptime-kuma": "Uptime Kuma",
|
||||
"alert.integration.source.zabbix": "Zabbix",
|
||||
"alert.integration.source": "Fonte de alarme integrada",
|
||||
"alert.integration.source.alertmanager": "Alertmanager",
|
||||
"alert.integration.source.prometheus": "Prometheus",
|
||||
"alert.integration.source.tencent": "Monitoramento de nuvem Tencent",
|
||||
"alert.integration.source.webhook": "PadrãoWebhook",
|
||||
"alert.integration.source.alibabacloud-sls": "AlibabaCloud-SLS",
|
||||
"alert.integration.source.huaweicloud-ces": "Huawei Cloud Eye",
|
||||
"alert.integration.source.volcengine": "Volcengine",
|
||||
"alert.integration.token.desc": "O token gerado pode ser usado para acessar a API HertzBeat",
|
||||
"alert.integration.token.new": "Clique para gerar token",
|
||||
"alert.integration.token.notice": "Este conteúdo será exibido apenas uma vez, por favor guarde seu token adequadamente e não o divulgue a terceiros.",
|
||||
"alert.integration.token.title": "Token de autenticação de acesso",
|
||||
"alert.setting.name": "Nome do limite",
|
||||
"alert.setting.type": "Tipo de limite",
|
||||
"alert.setting.name.tip": "O nome da regra de limite precisa ser exclusivo",
|
||||
"alert.setting.new.periodic": "Adicionar novo limite do plano",
|
||||
"alert.setting.new.realtime": "Adicionado limite em tempo real",
|
||||
"alert.setting.period": "Ciclo de execução",
|
||||
"alert.setting.period.placeholder": "Insira o período de execução, mínimo de 60 segundos",
|
||||
"alert.setting.edit.periodic": "Editar limiar do plano",
|
||||
"alert.setting.edit.realtime": "Editar limites em tempo real",
|
||||
"alert.setting.bind.available": "Monitoramento opcional",
|
||||
"alert.setting.bind.manage": "Monitoramento relacionado",
|
||||
"alert.setting.bind.monitors": "Monitoramento relacionado",
|
||||
"alert.setting.bind.monitors.tip": "Configure essa regra de limiar para aplicar à tarefa de monitoramento especificada, e o padrão é que todos os aplicativos não estão associados.",
|
||||
"alert.setting.bind.need-save": "Selecione primeiro o tipo de indicador e depois realize a associação de monitoramento.",
|
||||
"alert.setting.bind.selected": "Monitoramento selecionado",
|
||||
"alert.setting.template.vars.app": "Tipo de aplicativo",
|
||||
"alert.setting.template.vars.instance": "ID da instância",
|
||||
"alert.setting.template.vars.instance-name": "Nome da instância",
|
||||
"alert.setting.template.vars.instance-host": "Exemplo de host",
|
||||
"alert.setting.template.vars.metrics": "Nome métrico",
|
||||
"alert.setting.template.vars.threshold": "expressão limite",
|
||||
"alert.setting.template.vars.time": "Tempo de gatilho",
|
||||
"alert.setting.template.vars.tip": "Inserir indicador ou operador",
|
||||
"alert.setting.template.vars.value": "Valor de gatilho",
|
||||
"alert.severity": "Nível de alarme",
|
||||
"alert.severity.0": "Alarme de emergência",
|
||||
"alert.severity.1": "Alarme sério",
|
||||
"alert.severity.2": "Alerta de aviso",
|
||||
"alert.severity.all": "Todos",
|
||||
"alert.status": "Estado do alarme",
|
||||
"alert.status.all": "Todos os status",
|
||||
"alert.status.firing": "Alarmante",
|
||||
"alert.status.resolved": "Restaurado",
|
||||
"alert.help.group": "O agrupamento de convergência suporta combinar alarmes para rótulos de agrupamento especificados, desduplicação e convergência dos mesmos alarmes repetidos para o período. Você pode clicar em \"<i> Adicionar política de agrupamento </i>\" e configurá -la. <br> Quando a regra do limiar aciona o relatório de alarme ou alarme externo, ele entrará na convergência do pacote para conduzir o agrupamento de alarme e o alarme é desduplicado para evitar um grande número de mensagens de alarme causando tempestades de alarme.",
|
||||
"alert.help.group.link": "https://hertzbeat.apache.org/docs/#%E5%91%8A%E8%AD%A6%E6%94%B6%E6%95%9B",
|
||||
"alert.inhibit.delete": "Excluir regras de supressão",
|
||||
"alert.inhibit.edit": "Editar regras de supressão",
|
||||
"alert.inhibit.enable.tip": "Se deve ativar esta regra de supressão",
|
||||
"alert.inhibit.equal_labels": "Tags iguais",
|
||||
"alert.inhibit.equal_labels.common": "Tags comuns",
|
||||
"alert.inhibit.equal_labels.custom": "Tags personalizadas",
|
||||
"alert.inhibit.equal_labels.more": "Existem também {{count}} tags",
|
||||
"alert.inhibit.equal_labels.placeholder": "Digite o nome da tag e pressione Enter ou selecione na lista suspensa",
|
||||
"alert.inhibit.equal_labels.tip": "As chaves de tag e os valores correspondentes dos alarmes de origem e dos alarmes de destino devem ser iguais. As chaves de tag comuns incluem alertname, instância, gravidade, etc.",
|
||||
"alert.inhibit.name": "Suprimir nome da regra",
|
||||
"alert.inhibit.name.tip": "Um nome que identifique esta regra de supressão precisa ser exclusivo",
|
||||
"alert.inhibit.new": "Adicionado regras de supressão",
|
||||
"alert.inhibit.source_labels": "etiqueta de origem",
|
||||
"alert.inhibit.source_labels.tip": "Quando um alarme contém essas tags, o alarme alvo será suprimido",
|
||||
"alert.inhibit.target_labels": "Tags de destino",
|
||||
"alert.inhibit.target_labels.tip": "Alarmes que correspondem a essas tags serão suprimidos",
|
||||
"alert.notify.title": "Nova notificação de alarme",
|
||||
"alert.notify.body": "Você tem um novo alarme, por favor, resolva-o a tempo!",
|
||||
"alert.group-converge.name": "Nome da política",
|
||||
"alert.group-converge.name.tip": "Identifica o nome dessa política de agrupamento, que requer exclusiva",
|
||||
"alert.group-converge.new": "Adicionada estratégia de agrupamento",
|
||||
"alert.group-converge.repeat-interval": "Intervalo de repetição",
|
||||
"alert.group-converge.repeat-interval.tip": "Intervalo de notificação mínima para alarmes repetidos. Para alarmes acionados continuamente, evite notificações repetidas, padrão 4 horas",
|
||||
"alert.group-converge.seconds": "Segundo",
|
||||
"alert.group-converge.group-labels": "Agrupamento de tags",
|
||||
"alert.group-converge.group-labels.add": "Adicionar etiqueta",
|
||||
"alert.group-converge.group-labels.input": "Insira a tag personalizada e pressione Enter",
|
||||
"alert.group-converge.group-labels.placeholder": "Por favor, insira uma tag",
|
||||
"alert.group-converge.group-labels.tip": "As mensagens de alarme são agrupadas de acordo com a chave do rótulo do alarme, e várias chaves de rótulo são suportadas, como nome do alerta, gravidade, instância, etc.",
|
||||
"alert.group-converge.group-wait": "tempo de espera",
|
||||
"alert.group-converge.group-wait.tip": "O tempo de espera após um novo alarme é gerado, o mesmo alarme recebido nesse período será agrupado, com um padrão de 30 segundos.",
|
||||
"alert.group-converge.match-all": "Aplique tudo",
|
||||
"alert.group-converge.group-interval": "Tempo de intervalo",
|
||||
"alert.group-converge.group-interval.tip": "O intervalo de tempo mínimo para enviar notificações de alarme de grupo para evitar notificações de alarme muito frequentes. O padrão é 5 minutos.",
|
||||
"dashboard.alerts.title": "Lista de Alarmes Recentes",
|
||||
"dashboard.alerts.title-no": "Alarmes Pendentes Recentes",
|
||||
"dashboard.alerts.no": "Nenhum Alarme Pendente",
|
||||
@@ -1149,6 +604,59 @@
|
||||
"dashboard.monitors.distribute": "Distribuição do Monitor",
|
||||
"menu.link.question": "FAQ",
|
||||
"menu.link.guild": "Guia do Usuário",
|
||||
"menu.account": "Página pessoal",
|
||||
"menu.account.binding": "Vinculação de conta",
|
||||
"menu.account.center": "Centro pessoal",
|
||||
"menu.account.logout": "desistir",
|
||||
"menu.account.security": "Configurações de segurança",
|
||||
"menu.account.settings": "Configurações de Conta",
|
||||
"menu.account.trigger": "erro de gatilho",
|
||||
"menu.advanced": "Avançado",
|
||||
"menu.advanced.collector": "Cluster de coleção",
|
||||
"menu.advanced.define": "Modelo de monitoramento",
|
||||
"menu.advanced.labels": "Gerenciamento de tags",
|
||||
"menu.advanced.plugins": "Gerenciamento de plug-ins",
|
||||
"menu.advanced.status": "Página de status",
|
||||
"menu.alert": "Alarme",
|
||||
"menu.alert.center": "Central de alarme",
|
||||
"menu.alert.converge": "Convergência",
|
||||
"menu.alert.dispatch": "Notificação de mensagem",
|
||||
"menu.alert.group": "Convergência de grupo",
|
||||
"menu.alert.inhibit": "Supressão de alarme",
|
||||
"menu.alert.integration": "Acesso integrado",
|
||||
"menu.alert.setting": "Regras de limite",
|
||||
"menu.alert.silence": "Silêncio de alarme",
|
||||
"menu.clear.local.storage": "Limpe o cache local",
|
||||
"menu.dashboard": "Painel",
|
||||
"menu.extras": "Mais",
|
||||
"menu.extras.about": "sobre",
|
||||
"menu.extras.help": "Centro de ajuda",
|
||||
"menu.extras.setting": "configurar",
|
||||
"menu.extras.settings": "Configurações do sistema",
|
||||
"menu.fullscreen": "Tela cheia",
|
||||
"menu.fullscreen.exit": "Saia de tela cheia",
|
||||
"menu.lang": "linguagem",
|
||||
"menu.main": "Navegação principal",
|
||||
"menu.monitor": "monitor",
|
||||
"menu.monitor.bigdata": "Monitoramento de Big Data",
|
||||
"menu.monitor.bulletin": "Boletim personalizado",
|
||||
"menu.monitor.cache": "Monitoramento de cache",
|
||||
"menu.monitor.center": "Central de monitoramento",
|
||||
"menu.monitor.cn": "Monitoramento nativo em nuvem",
|
||||
"menu.monitor.custom": "Monitoramento personalizado",
|
||||
"menu.monitor.db": "Monitoramento do banco de dados",
|
||||
"menu.monitor.llm": "Modelo grande de IA",
|
||||
"menu.monitor.mid": "Monitoramento de middleware",
|
||||
"menu.monitor.network": "Monitoramento da rede",
|
||||
"menu.monitor.os": "Monitoramento do sistema operacional",
|
||||
"menu.monitor.program": "Monitoramento de aplicativos",
|
||||
"menu.monitor.prometheus": "Tarefas do Prometheus",
|
||||
"menu.monitor.promql": "Consulta de dados",
|
||||
"menu.monitor.server": "Monitoramento de servidor",
|
||||
"menu.monitor.service": "Monitoramento do Serviço de Aplicativo",
|
||||
"menu.monitor.webserver": "Monitoramento do servidor da web",
|
||||
"menu.more": "Mais",
|
||||
"menu.search.placeholder": "Pesquise os nomes de tarefas de monitoramento, hosts, etc.",
|
||||
"monitor_icon.center": "laptop",
|
||||
"monitor_icon.service": "appstore",
|
||||
"monitor_icon.db": "console-sql",
|
||||
@@ -1220,6 +728,130 @@
|
||||
"monitors.detail.chart.no-data": "Nenhum Dado de Métrica",
|
||||
"monitors.detail.chart.unit": "Unidade",
|
||||
"monitors.detail.value.null": "Nenhum Valor",
|
||||
"monitor.new-monitor": "Adicionar monitoramento",
|
||||
"monitor.center.help": "O Centro de Monitoramento é a entrada para gerenciamento de recursos de monitoramento, exibindo os monitores atualmente adicionados em formato de lista, com suporte a agrupamento por tags, filtragem de pesquisa, visualização de detalhes do monitor, etc.<br>Você pode realizar operações como adicionar, modificar, excluir, pausar monitoramento, importar/exportar e gerenciamento em lote.",
|
||||
"monitor.center.help.link": "https://hertzbeat.apache.org/pt-br/docs/#centro-de-monitoramento",
|
||||
"monitor.center.search.placeholder": "Pesquisar tipos de tarefas de monitoramento a adicionar: Linux, Redis",
|
||||
"monitor.coilRegisterAddresses.tip": "Insira os endereços dos registradores",
|
||||
"monitor.collect.time": "Tempo de coleta",
|
||||
"monitor.collect.time.tip": "Último tempo de coleta",
|
||||
"monitor.collector": "Coletor",
|
||||
"monitor.collector.status.offline": "Offline",
|
||||
"monitor.collector.status.online": "Online",
|
||||
"monitor.collector.system.default": "Agendamento padrão do sistema",
|
||||
"monitor.collector.tip": "Configurar qual coletor será usado para agendar a coleta deste monitor",
|
||||
"monitor.content.tip": "3025020101040",
|
||||
"monitor.contentType.tip": "Tipo de conteúdo do corpo da requisição",
|
||||
"monitor.copy": "Copiar monitor",
|
||||
"monitor.copy-monitor": "Copiar monitor",
|
||||
"monitor.copy.failed": "Falha ao copiar o monitor",
|
||||
"monitor.copy.notify.one-select": "Selecione apenas um monitor para copiar",
|
||||
"monitor.copy.success": "Monitor copiado com sucesso",
|
||||
"monitor.delete": "Excluir",
|
||||
"monitor.delete-monitor": "Excluir monitor",
|
||||
"monitor.description": "Descrição/Nota",
|
||||
"monitor.description.tip": "Mais informações para identificar e descrever esta tarefa",
|
||||
"monitor.detail": "Detalhes do monitor",
|
||||
"monitor.detail.auto-refresh": "Atualização automática a cada {{time}} segundos",
|
||||
"monitor.detail.basic": "Informações da tarefa de monitoramento",
|
||||
"monitor.detail.chart.back": "Restaurar zoom",
|
||||
"monitor.detail.chart.no-data": "Sem dados disponíveis",
|
||||
"monitor.detail.chart.query-1d": "Consultar últimos 1 dia",
|
||||
"monitor.detail.chart.query-1h": "Consultar últimas 1 hora",
|
||||
"monitor.detail.chart.query-1m": "Consultar últimos 1 mês",
|
||||
"monitor.detail.chart.query-1w": "Consultar últimos 1 semana",
|
||||
"monitor.detail.chart.query-3m": "Consultar últimos 3 meses",
|
||||
"monitor.detail.chart.query-6h": "Consultar últimas 6 horas",
|
||||
"monitor.detail.chart.save": "Salvar imagem",
|
||||
"monitor.detail.chart.unit": "Unidade",
|
||||
"monitor.detail.chart.zoom": "Zoom na área",
|
||||
"monitor.detail.close-refresh": "Desativar atualização automática",
|
||||
"monitor.detail.config-refresh": "Configurar atualização automática a cada {{time}} segundos",
|
||||
"monitor.detail.description": "Descrição",
|
||||
"monitor.detail.history": "Detalhes históricos do monitor (gráficos)",
|
||||
"monitor.detail.name": "Nome",
|
||||
"monitor.detail.port": "Porta",
|
||||
"monitor.detail.realtime": "Dados em tempo real do monitor",
|
||||
"monitor.detail.show-basic": "Exibir atributos básicos do monitor",
|
||||
"monitor.detail.status": "Status",
|
||||
"monitor.detail.time-series.unavailable": "Dados históricos não disponíveis - configure um banco de dados de série temporal",
|
||||
"monitor.detail.value.null": "Sem dados",
|
||||
"monitor.detect": "Testar conexão",
|
||||
"monitor.detect.failed": "Falha no teste de conexão",
|
||||
"monitor.detect.success": "Conexão testada com sucesso",
|
||||
"monitor.detect.tip": "Verificar a disponibilidade do monitor",
|
||||
"monitor.edit": "Editar",
|
||||
"monitor.edit-monitor": "Editar monitor",
|
||||
"monitor.edit.failed": "Falha ao modificar o monitor",
|
||||
"monitor.edit.success": "Monitor modificado com sucesso",
|
||||
"monitor.enable": "Retomar monitoramento",
|
||||
"monitor.export": "Exportar monitor",
|
||||
"monitor.export.switch-type": "Selecione o formato do arquivo de exportação!",
|
||||
"monitor.export.use-type": "Exportar monitor no formato {{type}}",
|
||||
"monitor.grafana.enabled.label": "Habilitar Grafana",
|
||||
"monitor.grafana.enabled.tip": "Habilitar Grafana?",
|
||||
"monitor.grafana.upload.label": "Carregar modelo do Grafana",
|
||||
"monitor.grafana.upload.tip": "Carregar arquivo JSON do Grafana",
|
||||
"monitor.headerName.tip": "Nome do cabeçalho",
|
||||
"monitor.headerValue.tip": "Valor do cabeçalho",
|
||||
"monitor.holdingRegisterAddresses.tip": "Insira os endereços dos registradores",
|
||||
"monitor.host": "Host de destino",
|
||||
"monitor.host.tip": "IP ou domínio do dispositivo monitorado",
|
||||
"monitor.icon.bigdata": "dot-chart",
|
||||
"monitor.icon.cache": "group",
|
||||
"monitor.icon.center": "laptop",
|
||||
"monitor.icon.cn": "cloud-server",
|
||||
"monitor.icon.custom": "project",
|
||||
"monitor.icon.db": "console-sql",
|
||||
"monitor.icon.mid": "cluster",
|
||||
"monitor.icon.network": "global",
|
||||
"monitor.icon.os": "windows",
|
||||
"monitor.icon.program": "code",
|
||||
"monitor.icon.service": "appstore",
|
||||
"monitor.icon.webserver": "database",
|
||||
"monitor.import": "Importar monitor",
|
||||
"monitor.intervals": "Intervalo de monitoramento",
|
||||
"monitor.intervals.tip": "Intervalo de tempo para coleta periódica de dados (em segundos)",
|
||||
"monitor.keyword.tip": "Insira a palavra-chave a ser monitorada",
|
||||
"monitor.list": "Lista de monitores",
|
||||
"monitor.name": "Nome da tarefa",
|
||||
"monitor.name.tip": "Nome para identificar a tarefa de monitoramento",
|
||||
"monitor.new": "Adicionar",
|
||||
"monitor.new.failed": "Falha ao adicionar monitor",
|
||||
"monitor.new.notify.change-to-http": "HTTPS desativado - a porta foi alterada automaticamente para 80.",
|
||||
"monitor.new.notify.change-to-https": "HTTPS ativado - a porta foi alterada automaticamente para 443.",
|
||||
"monitor.new.notify.change-to-ftp": "SFTP desativado - a porta foi alterada automaticamente para 21.",
|
||||
"monitor.new.notify.change-to-sftp": "SFTP ativado - a porta foi alterada automaticamente para 22.",
|
||||
"monitor.new.success": "Monitor adicionado com sucesso",
|
||||
"monitor.not-found": "Erro na consulta - este monitor não existe",
|
||||
"monitor.path.tip": "Caminho do endpoint do exportador",
|
||||
"monitor.payload.tip": "Usado para POST/PUT",
|
||||
"monitor.privateKey.tip": "Chave privada RSA",
|
||||
"monitor.search.app": "Filtrar por tipo",
|
||||
"monitor.search.placeholder": "Pesquisar monitor",
|
||||
"monitor.search.label": "Filtrar por tag",
|
||||
"monitor.sitemap.tip": "Mapa do site (exemplo: /sitemap.xml)",
|
||||
"monitor.spinning-tip.detecting": "Testando conectividade...",
|
||||
"monitor.status": "Status da tarefa",
|
||||
"monitor.status.all": "Todos os status",
|
||||
"monitor.status.down": "Inativo",
|
||||
"monitor.status.paused": "Pausado",
|
||||
"monitor.status.unreachable": "Inacessível",
|
||||
"monitor.status.up": "Normal",
|
||||
"monitor.total": "Total",
|
||||
"monitor.uri.tip": "Caminho URI do site (sem IP/porta) Exemplo: /console",
|
||||
"monitor.url.tip": "Serviço: jmx:rmi:///jndi/rmi://host:porta/jmxrmi",
|
||||
"monitor.sshHost.tip": "Obrigatório quando túnel SSH está ativo",
|
||||
"monitor.sshPort.tip": "Obrigatório quando túnel SSH está ativo",
|
||||
"monitor.sshUsername.tip": "Obrigatório quando túnel SSH está ativo",
|
||||
"monitor.sshPrivateKey.tip": "Chave privada RSA",
|
||||
"monitor.scrape.type.static": "Estatico",
|
||||
"monitor.scrape.type.http_sd": "Http Service Discovery",
|
||||
"monitor.scrape.type.nacos_sd": "Nacos Service Discovery",
|
||||
"monitor.scrape.type.dns_sd": "Dns Service Discovery",
|
||||
"monitor.scrape.type.eureka_sd": "Eureka Service Discovery",
|
||||
"monitor.scrape.type.consul_sd": "Consul Service Discovery",
|
||||
"monitor.scrape.type.zookeeper_sd": "Zookeeper Service Discovery",
|
||||
"common.name": "Nome da Métrica",
|
||||
"common.value": "Valor da Métrica",
|
||||
"common.search": "Pesquisar",
|
||||
@@ -1290,6 +922,19 @@
|
||||
"common.week.6": "Sábado",
|
||||
"common.time.unit.second": "Segundos",
|
||||
"common.file.select": "Selecionar Arquivo",
|
||||
"common.mute": "Mudo",
|
||||
"common.unmute": "Ativar som",
|
||||
"common.button.new": "Novo",
|
||||
"common.annotation": "anotação",
|
||||
"common.annotation.bind": "Anotação de ligação",
|
||||
"common.annotation.bind.tip": "As anotações podem ser usadas para marcar informações da entidade, como anotações vinculativas para eventos importantes para um recurso.",
|
||||
"common.button.collapse": "Fechar",
|
||||
"common.button.confirm": "confirmar",
|
||||
"common.button.copy": "cópia",
|
||||
"common.button.copy.tip": "Clique para copiar",
|
||||
"common.button.expand": "Expandir",
|
||||
"common.button.export": "Exportar",
|
||||
"common.button.import": "Importar",
|
||||
"validation.email.invalid": "Email inválido!",
|
||||
"validation.phone.invalid": "Número de telefone inválido!",
|
||||
"validation.verification-code.invalid": "Código de verificação inválido, deve ter 6 dígitos!",
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
"alert.integration.source.zabbix": "Zabbix",
|
||||
"alert.integration.source.alibabacloud-sls": "阿里云日志服务 SLS",
|
||||
"alert.integration.source.huaweicloud-ces": "华为云监控服务",
|
||||
"alert.integration.source.volcengine":"火山引擎云监控",
|
||||
"alert.integration.token.desc": "生成的 Token 可用于访问 HertzBeat API",
|
||||
"alert.integration.token.new": "点击生成 Token",
|
||||
"alert.integration.token.notice": "此内容只会展示一次,请妥善保管您的 Token,不要泄露给他人",
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
"alert.integration.source.zabbix": "Zabbix",
|
||||
"alert.integration.source.alibabacloud-sls": "阿里雲端日誌服務 SLS",
|
||||
"alert.integration.source.huaweicloud-ces": "華為雲監控服務",
|
||||
"alert.integration.source.volcengine":"火山引擎監控",
|
||||
"alert.integration.token.desc": "生成的 Token 可用于访问 HertzBeat API",
|
||||
"alert.integration.token.new": "点击生成 Token",
|
||||
"alert.integration.token.notice": "此内容只会展示一次,请妥善保管您的 Token,不要泄露给他人",
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 85 75">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill-rule: evenodd;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2 {
|
||||
fill: #1c2633;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: #00dcff;
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
fill: #006aff;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="_图层_4" data-name="图层 4">
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-3" d="M34.82,28.93l-14.97,46.07h32.16l-14.97-46.07c-.35-1.08-1.88-1.08-2.23,0Z"/>
|
||||
<path class="cls-3" d="M12.83,42.36c-.35-1.08-1.88-1.08-2.23,0L0,75h9.42l7.01-21.57-3.59-11.06Z"/>
|
||||
<path class="cls-4" d="M29.52,20c-.35-1.08-1.88-1.08-2.23,0l-17.87,55h10.43l13.77-42.37-4.1-12.63Z"/>
|
||||
<path class="cls-3" d="M71.73,36.43c-.35-1.08-1.88-1.08-2.23,0l-3.55,10.94,8.98,27.63h9.34l-12.53-38.57Z"/>
|
||||
<path class="cls-4" d="M50.82.81c-.35-1.08-1.88-1.08-2.23,0l-10.34,31.82,13.77,42.37h22.9L50.82.81Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
Reference in New Issue
Block a user