Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
4c16930a
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 搜索 >>
提交
4c16930a
编写于
1月 04, 2023
作者:
G
Gao Hongtao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add the ID tag to process_traffic for searching
Signed-off-by:
N
Gao Hongtao
<
hanahmily@gmail.com
>
上级
8ea8dbc0
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
56 addition
and
13 deletion
+56
-13
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ProcessTraffic.java
...p/server/core/analysis/manual/process/ProcessTraffic.java
+1
-0
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/BanyanDB.java
...ywalking/oap/server/core/storage/annotation/BanyanDB.java
+9
-0
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/BanyanDBModelExtension.java
...oap/server/core/storage/model/BanyanDBModelExtension.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
+4
-0
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConverter.java
...oap/server/storage/plugin/banyandb/BanyanDBConverter.java
+11
-0
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
.../oap/server/storage/plugin/banyandb/MetadataRegistry.java
+13
-4
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
...age/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
+4
-4
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsDAO.java
...r/storage/plugin/banyandb/measure/BanyanDBMetricsDAO.java
+6
-0
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
...r/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
+0
-5
未找到文件。
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ProcessTraffic.java
浏览文件 @
4c16930a
...
...
@@ -52,6 +52,7 @@ import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.PR
"name"
,
})
@SQLDatabase
.
Sharding
(
shardingAlgorithm
=
ShardingAlgorithm
.
NO_SHARDING
)
@BanyanDB
.
StoreIDTag
public
class
ProcessTraffic
extends
Metrics
{
public
static
final
String
INDEX_NAME
=
"process_traffic"
;
public
static
final
String
SERVICE_ID
=
"service_id"
;
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/BanyanDB.java
浏览文件 @
4c16930a
...
...
@@ -140,4 +140,13 @@ public @interface BanyanDB {
@Retention
(
RetentionPolicy
.
RUNTIME
)
@interface
MeasureField
{
}
/**
* StoreIDTag indicates a metric store its ID as a tag for searching.
* @Since 9.4.0
*/
@Target
({
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
@interface
StoreIDTag
{
}
}
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/BanyanDBModelExtension.java
浏览文件 @
4c16930a
...
...
@@ -37,4 +37,12 @@ public class BanyanDBModelExtension {
@Setter
private
String
timestampColumn
;
/**
* shouldStoreIDTag indicates whether a metric store its ID as a tag.
* The installer will create a virtual string ID tag with a tree index rule.
*/
@Getter
@Setter
private
boolean
shouldStoreIDTag
;
}
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java
浏览文件 @
4c16930a
...
...
@@ -93,6 +93,10 @@ public class StorageModels implements IModelManager, ModelCreator, ModelManipula
banyanDBModelExtension
.
setTimestampColumn
(
timestampColumn
);
}
if
(
aClass
.
isAnnotationPresent
(
BanyanDB
.
StoreIDTag
.
class
))
{
banyanDBModelExtension
.
setShouldStoreIDTag
(
true
);
}
checker
.
check
(
storage
.
getModelName
());
Model
model
=
new
Model
(
...
...
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConverter.java
浏览文件 @
4c16930a
...
...
@@ -40,6 +40,9 @@ import org.apache.skywalking.oap.server.storage.plugin.banyandb.util.ByteUtil;
import
java.util.List
;
public
class
BanyanDBConverter
{
public
static
final
String
ID
=
"id"
;
public
static
class
StorageToStream
implements
Convert2Entity
{
private
final
MetadataRegistry
.
Schema
schema
;
private
final
RowEntity
rowEntity
;
...
...
@@ -154,6 +157,14 @@ public class BanyanDBConverter {
}
}
public
void
acceptID
(
String
id
)
{
try
{
this
.
measureWrite
.
tag
(
ID
,
TagAndValue
.
stringTagValue
(
id
));
}
catch
(
BanyanDBException
ex
)
{
log
.
error
(
"fail to add ID tag"
,
ex
);
}
}
@Override
public
void
accept
(
String
fieldName
,
byte
[]
fieldValue
)
{
MetadataRegistry
.
ColumnSpec
columnSpec
=
this
.
schema
.
getSpec
(
fieldName
);
...
...
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
浏览文件 @
4c16930a
...
...
@@ -94,7 +94,7 @@ public enum MetadataRegistry {
// 1) a list of TagFamilySpec,
// 2) a list of IndexRule,
List
<
TagMetadata
>
tags
=
parseTagMetadata
(
model
,
schemaBuilder
);
List
<
TagFamilySpec
>
tagFamilySpecs
=
schemaMetadata
.
extractTagFamilySpec
(
tags
);
List
<
TagFamilySpec
>
tagFamilySpecs
=
schemaMetadata
.
extractTagFamilySpec
(
tags
,
false
);
// iterate over tagFamilySpecs to save tag names
for
(
final
TagFamilySpec
tagFamilySpec
:
tagFamilySpecs
)
{
for
(
final
TagFamilySpec
.
TagSpec
tagSpec
:
tagFamilySpec
.
tagSpecs
())
{
...
...
@@ -138,7 +138,7 @@ public enum MetadataRegistry {
// 1) a list of TagFamilySpec,
// 2) a list of IndexRule,
MeasureMetadata
tagsAndFields
=
parseTagAndFieldMetadata
(
model
,
schemaBuilder
);
List
<
TagFamilySpec
>
tagFamilySpecs
=
schemaMetadata
.
extractTagFamilySpec
(
tagsAndFields
.
tags
);
List
<
TagFamilySpec
>
tagFamilySpecs
=
schemaMetadata
.
extractTagFamilySpec
(
tagsAndFields
.
tags
,
model
.
getBanyanDBModelExtension
().
isShouldStoreIDTag
()
);
// iterate over tagFamilySpecs to save tag names
for
(
final
TagFamilySpec
tagFamilySpec
:
tagFamilySpecs
)
{
for
(
final
TagFamilySpec
.
TagSpec
tagSpec
:
tagFamilySpec
.
tagSpecs
())
{
...
...
@@ -150,6 +150,10 @@ public enum MetadataRegistry {
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toList
());
if
(
model
.
getBanyanDBModelExtension
().
isShouldStoreIDTag
())
{
indexRules
.
add
(
IndexRule
.
create
(
BanyanDBConverter
.
ID
,
IndexRule
.
IndexType
.
TREE
,
IndexRule
.
IndexLocation
.
SERIES
));
}
final
Measure
.
Builder
builder
=
Measure
.
create
(
schemaMetadata
.
getGroup
(),
schemaMetadata
.
name
(),
downSamplingDuration
(
model
.
getDownsampling
()));
builder
.
setEntityRelativeTags
(
shardingColumns
);
...
...
@@ -514,14 +518,19 @@ public enum MetadataRegistry {
}
}
private
List
<
TagFamilySpec
>
extractTagFamilySpec
(
List
<
TagMetadata
>
tagMetadataList
)
{
private
List
<
TagFamilySpec
>
extractTagFamilySpec
(
List
<
TagMetadata
>
tagMetadataList
,
boolean
shouldAddID
)
{
final
String
indexFamily
=
SchemaMetadata
.
this
.
indexFamily
();
final
String
nonIndexFamily
=
SchemaMetadata
.
this
.
nonIndexFamily
();
Map
<
String
,
List
<
TagMetadata
>>
tagMetadataMap
=
tagMetadataList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
tagMetadata
->
tagMetadata
.
isIndex
()
?
SchemaMetadata
.
this
.
indexFamily
()
:
SchemaMetadata
.
this
.
nonIndexFamily
()
));
.
collect
(
Collectors
.
groupingBy
(
tagMetadata
->
tagMetadata
.
isIndex
()
?
indexFamily
:
nonIndexFamily
));
final
List
<
TagFamilySpec
>
tagFamilySpecs
=
new
ArrayList
<>(
tagMetadataMap
.
size
());
for
(
final
Map
.
Entry
<
String
,
List
<
TagMetadata
>>
entry
:
tagMetadataMap
.
entrySet
())
{
final
TagFamilySpec
.
Builder
b
=
TagFamilySpec
.
create
(
entry
.
getKey
())
.
addTagSpecs
(
entry
.
getValue
().
stream
().
map
(
TagMetadata:
:
getTagSpec
).
collect
(
Collectors
.
toList
()));
if
(
shouldAddID
&&
indexFamily
.
equals
(
entry
.
getKey
()))
{
b
.
addTagSpec
(
TagFamilySpec
.
TagSpec
.
newStringTag
(
BanyanDBConverter
.
ID
));
}
tagFamilySpecs
.
add
(
b
.
build
());
}
...
...
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
浏览文件 @
4c16930a
...
...
@@ -165,15 +165,15 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
@Override
public
ServiceInstance
getInstance
(
String
instanceId
)
throws
IOException
{
IDManager
.
ServiceInstanceID
.
InstanceIDDefinition
id
=
IDManager
.
ServiceInstanceID
.
analysisId
(
instanceId
);
MeasureQueryResponse
resp
=
query
(
InstanceTraffic
.
INDEX_NAME
,
INSTANCE_TRAFFIC_COMPACT_TAGS
,
Collections
.
emptySet
(),
new
QueryBuilder
<
MeasureQuery
>()
{
@Override
protected
void
apply
(
MeasureQuery
query
)
{
if
(
StringUtil
.
isNotEmpty
(
instanceId
))
{
query
.
and
(
id
(
instanceId
));
}
query
.
and
(
eq
(
InstanceTraffic
.
SERVICE_ID
,
id
.
getServiceId
()))
.
and
(
eq
(
InstanceTraffic
.
NAME
,
id
.
getName
()));
}
});
MetadataRegistry
.
Schema
schema
=
MetadataRegistry
.
INSTANCE
.
findMetadata
(
InstanceTraffic
.
INDEX_NAME
,
DownSampling
.
Minute
);
...
...
@@ -327,7 +327,7 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
@Override
protected
void
apply
(
MeasureQuery
query
)
{
if
(
StringUtil
.
isNotEmpty
(
processId
))
{
query
.
and
(
id
(
processId
));
query
.
and
(
eq
(
BanyanDBConverter
.
ID
,
processId
));
}
}
});
...
...
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsDAO.java
浏览文件 @
4c16930a
...
...
@@ -138,6 +138,9 @@ public class BanyanDBMetricsDAO extends AbstractBanyanDBDAO implements IMetricsD
TimeBucket
.
getTimestamp
(
metrics
.
getTimeBucket
(),
model
.
getDownsampling
()));
// timestamp
final
BanyanDBConverter
.
MeasureToStorage
toStorage
=
new
BanyanDBConverter
.
MeasureToStorage
(
schema
,
measureWrite
);
storageBuilder
.
entity2Storage
(
metrics
,
toStorage
);
if
(
model
.
getBanyanDBModelExtension
().
isShouldStoreIDTag
())
{
toStorage
.
acceptID
(
metrics
.
id
().
build
());
}
return
new
BanyanDBMeasureInsertRequest
(
toStorage
.
obtain
(),
callback
);
}
...
...
@@ -153,6 +156,9 @@ public class BanyanDBMetricsDAO extends AbstractBanyanDBDAO implements IMetricsD
TimeBucket
.
getTimestamp
(
metrics
.
getTimeBucket
(),
model
.
getDownsampling
()));
// timestamp
final
BanyanDBConverter
.
MeasureToStorage
toStorage
=
new
BanyanDBConverter
.
MeasureToStorage
(
schema
,
measureWrite
);
storageBuilder
.
entity2Storage
(
metrics
,
toStorage
);
if
(
model
.
getBanyanDBModelExtension
().
isShouldStoreIDTag
())
{
toStorage
.
acceptID
(
metrics
.
id
().
build
());
}
return
new
BanyanDBMeasureUpdateRequest
(
toStorage
.
obtain
());
}
...
...
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
浏览文件 @
4c16930a
...
...
@@ -29,7 +29,6 @@ import org.apache.skywalking.banyandb.v1.client.StreamQuery;
import
org.apache.skywalking.banyandb.v1.client.StreamQueryResponse
;
import
org.apache.skywalking.banyandb.v1.client.TimestampRange
;
import
org.apache.skywalking.oap.server.core.analysis.DownSampling
;
import
org.apache.skywalking.oap.server.core.analysis.metrics.Metrics
;
import
org.apache.skywalking.oap.server.core.storage.AbstractDAO
;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient
;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.MetadataRegistry
;
...
...
@@ -146,10 +145,6 @@ public abstract class AbstractBanyanDBDAO extends AbstractDAO<BanyanDBStorageCli
return
PairQueryCondition
.
LongQueryCondition
.
ne
(
name
,
value
);
}
protected
PairQueryCondition
<
String
>
id
(
String
value
)
{
return
PairQueryCondition
.
IDQueryCondition
.
eq
(
Metrics
.
ID
,
value
);
}
protected
AbstractQuery
.
OrderBy
desc
(
String
name
)
{
return
new
AbstractQuery
.
OrderBy
(
name
,
AbstractQuery
.
Sort
.
DESC
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录