Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
89f314c8
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 1 年多
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
89f314c8
编写于
8月 05, 2020
作者:
wu-sheng
提交者:
GitHub
8月 05, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make the column length of slow DB statement having the good default value. (#5238)
上级
48311e09
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
36 addition
and
10 deletion
+36
-10
oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/AnalyzerModuleConfig.java
...ng/oap/server/analyzer/provider/AnalyzerModuleConfig.java
+3
-1
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/database/TopNDatabaseStatement.java
.../core/analysis/manual/database/TopNDatabaseStatement.java
+6
-1
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/topn/TopN.java
...apache/skywalking/oap/server/core/analysis/topn/TopN.java
+1
-5
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/Column.java
...skywalking/oap/server/core/storage/annotation/Column.java
+8
-0
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
...ywalking/oap/server/core/storage/model/StorageModels.java
+18
-3
未找到文件。
oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/AnalyzerModuleConfig.java
浏览文件 @
89f314c8
...
...
@@ -68,7 +68,9 @@ public class AnalyzerModuleConfig extends ModuleConfig {
@Getter
private
boolean
traceAnalysis
=
true
;
/**
* Slow Sql string length can't beyond this limit
* Slow Sql string length can't beyond this limit. This value should be as same as the length annotation at the
* {@code org.apache.skywalking.oap.server.core.analysis.manual.database.TopNDatabaseStatement#statement}. And share
* the system env name, SW_SLOW_DB_THRESHOLD
*/
@Setter
@Getter
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/database/TopNDatabaseStatement.java
浏览文件 @
89f314c8
...
...
@@ -21,23 +21,28 @@ package org.apache.skywalking.oap.server.core.analysis.manual.database;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Objects
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.apache.skywalking.oap.server.core.analysis.Stream
;
import
org.apache.skywalking.oap.server.core.analysis.topn.TopN
;
import
org.apache.skywalking.oap.server.core.analysis.worker.TopNStreamProcessor
;
import
org.apache.skywalking.oap.server.core.source.DefaultScopeDefine
;
import
org.apache.skywalking.oap.server.core.storage.StorageBuilder
;
import
org.apache.skywalking.oap.server.core.storage.annotation.Column
;
/**
* Database TopN statement, including Database SQL statement, mongoDB and Redis commands.
*/
@Stream
(
name
=
TopNDatabaseStatement
.
INDEX_NAME
,
scopeId
=
DefaultScopeDefine
.
DATABASE_SLOW_STATEMENT
,
builder
=
TopNDatabaseStatement
.
Builder
.
class
,
processor
=
TopNStreamProcessor
.
class
)
public
class
TopNDatabaseStatement
extends
TopN
{
public
static
final
String
INDEX_NAME
=
"top_n_database_statement"
;
@Setter
private
String
id
;
@Getter
@Setter
@Column
(
columnName
=
STATEMENT
,
length
=
2000
,
lengthEnvVariable
=
"SW_SLOW_DB_THRESHOLD"
,
storageOnly
=
true
)
private
String
statement
;
@Override
public
String
id
()
{
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/topn/TopN.java
浏览文件 @
89f314c8
...
...
@@ -32,11 +32,7 @@ public abstract class TopN extends Record implements ComparableStorageData {
public
static
final
String
LATENCY
=
"latency"
;
public
static
final
String
TRACE_ID
=
"trace_id"
;
public
static
final
String
SERVICE_ID
=
"service_id"
;
@Getter
@Setter
@Column
(
columnName
=
STATEMENT
,
storageOnly
=
true
)
private
String
statement
;
@Getter
@Setter
@Column
(
columnName
=
LATENCY
,
dataType
=
Column
.
ValueDataType
.
SAMPLED_RECORD
)
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/Column.java
浏览文件 @
89f314c8
...
...
@@ -69,6 +69,14 @@ public @interface Column {
*/
int
length
()
default
200
;
/**
* The return name of system environment could provide an override value of the length limitation.
* @return the variable name of system environment.
*
* @since 8.2.0
*/
String
lengthEnvVariable
()
default
""
;
/**
* Column with data type != {@link ValueDataType#NOT_VALUE} represents this is a value column. Indicate it would be
* queried by UI/CLI.
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
浏览文件 @
89f314c8
...
...
@@ -23,9 +23,8 @@ import java.util.Collections;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Objects
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.skywalking.apm.util.StringUtil
;
import
org.apache.skywalking.oap.server.core.source.DefaultScopeDefine
;
import
org.apache.skywalking.oap.server.core.storage.StorageException
;
import
org.apache.skywalking.oap.server.core.storage.annotation.Column
;
...
...
@@ -105,10 +104,26 @@ public class StorageModels implements IModelManager, ModelCreator, ModelManipula
for
(
Field
field
:
fields
)
{
if
(
field
.
isAnnotationPresent
(
Column
.
class
))
{
Column
column
=
field
.
getAnnotation
(
Column
.
class
);
// Use the column#length as the default column length, as read the system env as the override mechanism.
// Log the error but don't block the startup sequence.
int
columnLength
=
column
.
length
();
final
String
lengthEnvVariable
=
column
.
lengthEnvVariable
();
if
(
StringUtil
.
isNotEmpty
(
lengthEnvVariable
))
{
final
String
envValue
=
System
.
getenv
(
lengthEnvVariable
);
if
(
StringUtil
.
isNotEmpty
(
envValue
))
{
try
{
columnLength
=
Integer
.
parseInt
(
envValue
);
}
catch
(
NumberFormatException
e
)
{
log
.
error
(
"Model [{}] Column [{}], illegal value {} of column length from system env [{}]"
,
modelName
,
column
.
columnName
(),
envValue
,
lengthEnvVariable
);
}
}
}
modelColumns
.
add
(
new
ModelColumn
(
new
ColumnName
(
modelName
,
column
.
columnName
()),
field
.
getType
(),
column
.
matchQuery
(),
column
.
storageOnly
(),
column
.
dataType
().
isValue
(),
column
.
length
()
column
.
storageOnly
(),
column
.
dataType
().
isValue
(),
column
Length
));
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"The field named {} with the {} type"
,
column
.
columnName
(),
field
.
getType
());
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录