Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
2a84bfa1
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
2a84bfa1
编写于
5月 14, 2020
作者:
kimmking
提交者:
GitHub
5月 14, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5595 from yu199195/metrcis-sharding
buried shardingDatasource and shardingTable metrics.
上级
375d5eaf
5dad1198
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
127 addition
and
24 deletion
+127
-24
sharding-metrics/sharding-metrics-prometheus/src/main/java/org/apache/shardingsphere/metrics/prometheus/PrometheusMetricsTrackerFactory.java
...e/metrics/prometheus/PrometheusMetricsTrackerFactory.java
+4
-2
sharding-metrics/sharding-metrics-prometheus/src/main/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingDatasourceCounterMetricsTracker.java
...impl/counter/ShardingDatasourceCounterMetricsTracker.java
+5
-9
sharding-metrics/sharding-metrics-prometheus/src/main/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingTableCounterMetricsTracker.java
...heus/impl/counter/ShardingTableCounterMetricsTracker.java
+40
-0
sharding-metrics/sharding-metrics-prometheus/src/test/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingDatasourceCounterMetricsTrackerTest.java
.../counter/ShardingDatasourceCounterMetricsTrackerTest.java
+59
-0
sharding-metrics/sharding-metrics-prometheus/src/test/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingTableCounterMetricsTrackerTest.java
.../impl/counter/ShardingTableCounterMetricsTrackerTest.java
+10
-10
sharding-metrics/sharding-metrics-spi/src/main/java/org/apache/shardingsphere/metrics/enums/MetricsLabelEnum.java
...apache/shardingsphere/metrics/enums/MetricsLabelEnum.java
+7
-2
sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/metrics/MetricsUtils.java
...ingsphere/shardingproxy/backend/metrics/MetricsUtils.java
+2
-1
未找到文件。
sharding-metrics/sharding-metrics-prometheus/src/main/java/org/apache/shardingsphere/metrics/prometheus/PrometheusMetricsTrackerFactory.java
浏览文件 @
2a84bfa1
...
...
@@ -22,7 +22,8 @@ import org.apache.shardingsphere.metrics.api.MetricsTrackerFactory;
import
org.apache.shardingsphere.metrics.prometheus.impl.counter.RequestTotalCounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.counter.SQLStatementCounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.counter.ShadowHitTotalCounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.counter.ShardingCounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.counter.ShardingDatasourceCounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.counter.ShardingTableCounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.counter.TransactionCounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.gauge.ChannelCountGaugeMetricsTracker
;
import
org.apache.shardingsphere.metrics.prometheus.impl.histogram.RequestLatencyHistogramMetricsTracker
;
...
...
@@ -45,7 +46,8 @@ public final class PrometheusMetricsTrackerFactory implements MetricsTrackerFact
REGISTER
.
add
(
new
ChannelCountGaugeMetricsTracker
());
REGISTER
.
add
(
new
RequestLatencyHistogramMetricsTracker
());
REGISTER
.
add
(
new
RequestLatencySummaryMetricsTracker
());
REGISTER
.
add
(
new
ShardingCounterMetricsTracker
());
REGISTER
.
add
(
new
ShardingTableCounterMetricsTracker
());
REGISTER
.
add
(
new
ShardingDatasourceCounterMetricsTracker
());
REGISTER
.
add
(
new
TransactionCounterMetricsTracker
());
REGISTER
.
add
(
new
ShadowHitTotalCounterMetricsTracker
());
}
...
...
sharding-metrics/sharding-metrics-prometheus/src/main/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingCounterMetricsTracker.java
→
sharding-metrics/sharding-metrics-prometheus/src/main/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/Sharding
Datasource
CounterMetricsTracker.java
浏览文件 @
2a84bfa1
...
...
@@ -22,23 +22,19 @@ import org.apache.shardingsphere.metrics.api.CounterMetricsTracker;
import
org.apache.shardingsphere.metrics.enums.MetricsLabelEnum
;
/**
* Sharding counter metrics tracker.
* Sharding
datasource
counter metrics tracker.
*/
public
final
class
ShardingCounterMetricsTracker
implements
CounterMetricsTracker
{
public
final
class
Sharding
Datasource
CounterMetricsTracker
implements
CounterMetricsTracker
{
private
static
final
Counter
SHARDING
=
Counter
.
build
()
.
name
(
"sharding"
)
.
labelNames
(
"datasource"
,
"table"
)
.
help
(
"collect sharding datasource and table count"
)
.
register
();
private
static
final
Counter
SHARDING_DATASOURCE
=
Counter
.
build
().
name
(
"sharding_datasource"
).
labelNames
(
"datasource"
)
.
help
(
"collect sharding datasource count"
).
register
();
@Override
public
void
inc
(
final
double
amount
,
final
String
...
labelValues
)
{
SHARDING
.
labels
(
labelValues
).
inc
(
amount
);
SHARDING
_DATASOURCE
.
labels
(
labelValues
).
inc
(
amount
);
}
@Override
public
String
metricsLabel
()
{
return
MetricsLabelEnum
.
SHARDING
.
getName
();
return
MetricsLabelEnum
.
SHARDING
_DATASOURCE
.
getName
();
}
}
sharding-metrics/sharding-metrics-prometheus/src/main/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingTableCounterMetricsTracker.java
0 → 100644
浏览文件 @
2a84bfa1
/*
* 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.shardingsphere.metrics.prometheus.impl.counter
;
import
io.prometheus.client.Counter
;
import
org.apache.shardingsphere.metrics.api.CounterMetricsTracker
;
import
org.apache.shardingsphere.metrics.enums.MetricsLabelEnum
;
/**
* Sharding table counter metrics tracker.
*/
public
final
class
ShardingTableCounterMetricsTracker
implements
CounterMetricsTracker
{
private
static
final
Counter
SHARDING_TABLE
=
Counter
.
build
().
name
(
"sharding_table"
).
labelNames
(
"table"
)
.
help
(
"collect sharding table count"
).
register
();
@Override
public
void
inc
(
final
double
amount
,
final
String
...
labelValues
)
{
SHARDING_TABLE
.
labels
(
labelValues
).
inc
(
amount
);
}
@Override
public
String
metricsLabel
()
{
return
MetricsLabelEnum
.
SHARDING_TABLE
.
getName
();
}
}
sharding-metrics/sharding-metrics-prometheus/src/test/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingDatasourceCounterMetricsTrackerTest.java
0 → 100644
浏览文件 @
2a84bfa1
/*
* 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.shardingsphere.metrics.prometheus.impl.counter
;
import
org.apache.shardingsphere.metrics.enums.MetricsLabelEnum
;
import
org.apache.shardingsphere.metrics.enums.MetricsTypeEnum
;
import
org.apache.shardingsphere.metrics.prometheus.impl.AbstractPrometheusCollectorRegistry
;
import
org.junit.Test
;
import
static
org
.
hamcrest
.
CoreMatchers
.
is
;
import
static
org
.
junit
.
Assert
.
assertThat
;
public
final
class
ShardingDatasourceCounterMetricsTrackerTest
extends
AbstractPrometheusCollectorRegistry
{
@Test
public
void
assertShardingCounter
()
{
ShardingDatasourceCounterMetricsTracker
tracker
=
new
ShardingDatasourceCounterMetricsTracker
();
assertThat
(
tracker
.
metricsLabel
(),
is
(
MetricsLabelEnum
.
SHARDING_DATASOURCE
.
getName
()));
assertThat
(
tracker
.
metricsType
(),
is
(
MetricsTypeEnum
.
COUNTER
.
name
()));
String
name
=
"sharding_datasource"
;
String
[]
labelNames
=
{
"datasource"
};
String
[]
labelValues0
=
{
"ds_0"
};
tracker
.
inc
(
1.0
,
labelValues0
);
Double
ds0
=
getCollectorRegistry
().
getSampleValue
(
name
,
labelNames
,
labelValues0
);
assertThat
(
ds0
,
is
(
1.0
));
String
[]
labelValues1
=
{
"ds_1"
};
tracker
.
inc
(
3.0
,
labelValues1
);
Double
ds1
=
getCollectorRegistry
().
getSampleValue
(
name
,
labelNames
,
labelValues1
);
assertThat
(
ds1
,
is
(
3.0
));
}
@Test
(
expected
=
IllegalArgumentException
.
class
)
public
void
assertNoLabels
()
{
ShardingDatasourceCounterMetricsTracker
tracker
=
new
ShardingDatasourceCounterMetricsTracker
();
tracker
.
inc
(
1.0
);
}
@Test
(
expected
=
IllegalArgumentException
.
class
)
public
void
assertMoreLabels
()
{
ShardingDatasourceCounterMetricsTracker
tracker
=
new
ShardingDatasourceCounterMetricsTracker
();
tracker
.
inc
(
1.0
,
"ds0"
,
" ds1"
);
}
}
sharding-metrics/sharding-metrics-prometheus/src/test/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/ShardingCounterMetricsTrackerTest.java
→
sharding-metrics/sharding-metrics-prometheus/src/test/java/org/apache/shardingsphere/metrics/prometheus/impl/counter/Sharding
Table
CounterMetricsTrackerTest.java
浏览文件 @
2a84bfa1
...
...
@@ -25,20 +25,20 @@ import org.junit.Test;
import
static
org
.
hamcrest
.
CoreMatchers
.
is
;
import
static
org
.
junit
.
Assert
.
assertThat
;
public
final
class
ShardingCounterMetricsTrackerTest
extends
AbstractPrometheusCollectorRegistry
{
public
final
class
Sharding
Table
CounterMetricsTrackerTest
extends
AbstractPrometheusCollectorRegistry
{
@Test
public
void
assertShardingCounter
()
{
Sharding
CounterMetricsTracker
tracker
=
new
Sharding
CounterMetricsTracker
();
assertThat
(
tracker
.
metricsLabel
(),
is
(
MetricsLabelEnum
.
SHARDING
.
getName
()));
Sharding
TableCounterMetricsTracker
tracker
=
new
ShardingTable
CounterMetricsTracker
();
assertThat
(
tracker
.
metricsLabel
(),
is
(
MetricsLabelEnum
.
SHARDING
_TABLE
.
getName
()));
assertThat
(
tracker
.
metricsType
(),
is
(
MetricsTypeEnum
.
COUNTER
.
name
()));
String
name
=
"sharding"
;
String
[]
labelNames
=
{
"
datasource"
,
"
table"
};
String
[]
labelValues0
=
{
"
ds0"
,
"
t_order_0"
};
String
name
=
"sharding
_table
"
;
String
[]
labelNames
=
{
"table"
};
String
[]
labelValues0
=
{
"t_order_0"
};
tracker
.
inc
(
1.0
,
labelValues0
);
Double
ds0
=
getCollectorRegistry
().
getSampleValue
(
name
,
labelNames
,
labelValues0
);
assertThat
(
ds0
,
is
(
1.0
));
String
[]
labelValues1
=
{
"
ds1"
,
"
t_order_1"
};
String
[]
labelValues1
=
{
"t_order_1"
};
tracker
.
inc
(
2.0
,
labelValues1
);
Double
ds1
=
getCollectorRegistry
().
getSampleValue
(
name
,
labelNames
,
labelValues1
);
assertThat
(
ds1
,
is
(
2.0
));
...
...
@@ -46,14 +46,14 @@ public final class ShardingCounterMetricsTrackerTest extends AbstractPrometheusC
@Test
(
expected
=
IllegalArgumentException
.
class
)
public
void
assertNoLabels
()
{
Sharding
CounterMetricsTracker
tracker
=
new
Sharding
CounterMetricsTracker
();
Sharding
TableCounterMetricsTracker
tracker
=
new
ShardingTable
CounterMetricsTracker
();
tracker
.
inc
(
1.0
);
}
@Test
(
expected
=
IllegalArgumentException
.
class
)
public
void
assertMoreLabels
()
{
Sharding
CounterMetricsTracker
tracker
=
new
Sharding
CounterMetricsTracker
();
tracker
.
inc
(
1.0
,
"
ds0"
,
"
t_order_0"
,
" t_order_1"
);
Sharding
TableCounterMetricsTracker
tracker
=
new
ShardingTable
CounterMetricsTracker
();
tracker
.
inc
(
1.0
,
"t_order_0"
,
" t_order_1"
);
}
}
sharding-metrics/sharding-metrics-spi/src/main/java/org/apache/shardingsphere/metrics/enums/MetricsLabelEnum.java
浏览文件 @
2a84bfa1
...
...
@@ -46,11 +46,16 @@ public enum MetricsLabelEnum {
* Request latency metrics label.
*/
REQUEST_LATENCY
(
"request_latency"
),
/**
* Sharding table metrics label.
*/
SHARDING_TABLE
(
"sharding_table"
),
/**
* Sharding metrics label.
* Sharding
datasource
metrics label.
*/
SHARDING
(
"sharding
"
),
SHARDING
_DATASOURCE
(
"sharding_datasource
"
),
/**
* Transaction metrics label.
...
...
sharding-proxy/sharding-proxy-backend/src/main/java/org/apache/shardingsphere/shardingproxy/backend/metrics/MetricsUtils.java
浏览文件 @
2a84bfa1
...
...
@@ -42,8 +42,9 @@ public final class MetricsUtils {
for
(
RouteUnit
each
:
routeUnits
)
{
Collection
<
RouteMapper
>
tableMappers
=
each
.
getTableMappers
();
RouteMapper
dataSourceMapper
=
each
.
getDataSourceMapper
();
MetricsTrackerFacade
.
getInstance
().
counterInc
(
MetricsLabelEnum
.
SHARDING_DATASOURCE
.
getName
(),
dataSourceMapper
.
getActualName
());
for
(
RouteMapper
table
:
tableMappers
)
{
MetricsTrackerFacade
.
getInstance
().
counterInc
(
MetricsLabelEnum
.
SHARDING
.
getName
(),
dataSourceMapper
.
getActual
Name
(),
table
.
getActualName
());
MetricsTrackerFacade
.
getInstance
().
counterInc
(
MetricsLabelEnum
.
SHARDING
_TABLE
.
get
Name
(),
table
.
getActualName
());
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录