Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
6b603573
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 搜索 >>
未验证
提交
6b603573
编写于
11月 26, 2022
作者:
wu-sheng
提交者:
GitHub
11月 26, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix `BanyanDB.ShardingKey` annotation missed in the generated OAL metrics classes. (#10032)
上级
1da72b6a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
20 deletion
+22
-20
docs/en/changes/changes.md
docs/en/changes/changes.md
+1
-0
oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java
...rc/main/java/org/apache/skywalking/oal/rt/OALRuntime.java
+2
-1
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
+19
-19
未找到文件。
docs/en/changes/changes.md
浏览文件 @
6b603573
...
...
@@ -132,6 +132,7 @@
requires altering this column or removing these tables before OAP starts, if bump up from previous releases.
*
Fix Elasticsearch storage: In
`No-Sharding Mode`
, add specific analyzer to the template before index creation to avoid update index error.
*
Internal API: remove undocumented ElasticSearch API usage and use documented one.
*
Fix
`BanyanDB.ShardingKey`
annotation missed in the generated OAL metrics classes.
#### UI
...
...
oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java
浏览文件 @
6b603573
...
...
@@ -268,12 +268,13 @@ public class OALRuntime implements OALEngine {
if
(
field
.
getType
().
equals
(
String
.
class
))
{
columnAnnotation
.
addMemberValue
(
"length"
,
new
IntegerMemberValue
(
constPool
,
field
.
getLength
()));
}
annotationsAttribute
.
addAnnotation
(
columnAnnotation
);
if
(
field
.
isID
())
{
// Add shardingKeyIdx = 0 to column annotation.
Annotation
banyanShardingKeyAnnotation
=
new
Annotation
(
BanyanDB
.
ShardingKey
.
class
.
getName
(),
constPool
);
banyanShardingKeyAnnotation
.
addMemberValue
(
"index"
,
new
IntegerMemberValue
(
constPool
,
0
));
annotationsAttribute
.
addAnnotation
(
banyanShardingKeyAnnotation
);
}
annotationsAttribute
.
addAnnotation
(
columnAnnotation
);
newField
.
getFieldInfo
().
addAttribute
(
annotationsAttribute
);
}
catch
(
CannotCompileException
e
)
{
...
...
oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
浏览文件 @
6b603573
...
...
@@ -20,6 +20,18 @@ package org.apache.skywalking.oap.server.storage.plugin.banyandb;
import
com.google.gson.JsonObject
;
import
io.grpc.Status
;
import
java.lang.reflect.ParameterizedType
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
javax.annotation.Nonnull
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
...
...
@@ -48,19 +60,6 @@ import org.apache.skywalking.oap.server.core.storage.annotation.ValueColumnMetad
import
org.apache.skywalking.oap.server.core.storage.model.Model
;
import
org.apache.skywalking.oap.server.core.storage.model.ModelColumn
;
import
org.apache.skywalking.oap.server.core.storage.type.StorageDataComplexObject
;
import
javax.annotation.Nonnull
;
import
java.lang.reflect.ParameterizedType
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
org.apache.skywalking.oap.server.library.util.StringUtil
;
@Slf4j
...
...
@@ -75,7 +74,7 @@ public enum MetadataRegistry {
Map
<
String
,
ModelColumn
>
modelColumnMap
=
model
.
getColumns
().
stream
()
.
collect
(
Collectors
.
toMap
(
modelColumn
->
modelColumn
.
getColumnName
().
getStorageName
(),
Function
.
identity
()));
// parse and set sharding keys
List
<
String
>
entitie
s
=
parseEntityNames
(
modelColumnMap
);
List
<
String
>
shardingColumn
s
=
parseEntityNames
(
modelColumnMap
);
// parse tag metadata
// this can be used to build both
// 1) a list of TagFamilySpec,
...
...
@@ -100,10 +99,10 @@ public enum MetadataRegistry {
.
collect
(
Collectors
.
toList
());
final
Stream
.
Builder
builder
=
Stream
.
create
(
schemaMetadata
.
getGroup
(),
schemaMetadata
.
name
());
if
(
entitie
s
.
isEmpty
())
{
if
(
shardingColumn
s
.
isEmpty
())
{
throw
new
IllegalStateException
(
"sharding keys of model[stream."
+
model
.
getName
()
+
"] must not be empty"
);
}
builder
.
setEntityRelativeTags
(
entitie
s
);
builder
.
setEntityRelativeTags
(
shardingColumn
s
);
builder
.
addTagFamilies
(
tagFamilySpecs
);
builder
.
addIndexes
(
indexRules
);
registry
.
put
(
schemaMetadata
.
name
(),
schemaBuilder
.
build
());
...
...
@@ -116,7 +115,7 @@ public enum MetadataRegistry {
Map
<
String
,
ModelColumn
>
modelColumnMap
=
model
.
getColumns
().
stream
()
.
collect
(
Collectors
.
toMap
(
modelColumn
->
modelColumn
.
getColumnName
().
getStorageName
(),
Function
.
identity
()));
// parse and set sharding keys
List
<
String
>
entitie
s
=
parseEntityNames
(
modelColumnMap
);
List
<
String
>
shardingColumn
s
=
parseEntityNames
(
modelColumnMap
);
// parse tag metadata
// this can be used to build both
// 1) a list of TagFamilySpec,
...
...
@@ -136,10 +135,11 @@ public enum MetadataRegistry {
final
Measure
.
Builder
builder
=
Measure
.
create
(
schemaMetadata
.
getGroup
(),
schemaMetadata
.
name
(),
downSamplingDuration
(
model
.
getDownsampling
()));
if
(
entities
.
isEmpty
())
{
// if shardingKeys is empty, for measure, we can use ID as a single sharding key.
if
(
shardingColumns
.
isEmpty
())
{
// if shardingKeys is empty, for measure, we can use ID as a single sharding key.
builder
.
setEntityRelativeTags
(
Measure
.
ID
);
}
else
{
builder
.
setEntityRelativeTags
(
entitie
s
);
builder
.
setEntityRelativeTags
(
shardingColumn
s
);
}
builder
.
addTagFamilies
(
tagFamilySpecs
);
builder
.
addIndexes
(
indexRules
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录