Hi >From my understanding, all streaming models are going to base on `@Stream( kind= xx)`, Could you show, how many kinds of `@Stream`will we plan to use? My guess 1. Metrics 2. Inventory 3. Record 4. TopN
Please correct me if I am wrong. Sheng Wu 吴晟 Apache SkyWalking, ShardingSphere, Zipkin Twitter, wusheng1108 peng-yongsheng <[email protected]> 于2019年5月13日周一 下午3:07写道: > This is the most common metrics entity definition with the stream > annotations. > > @MetricsType > @StreamData > @StorageEntity(name = ServiceRelationClientSideMetrics.INDEX_NAME, builder > = > ServiceRelationClientSideMetrics.Builder.class, sourceScopeId = > DefaultScopeDefine.SERVICE_RELATION) > > @MetricsType: What model is streaming processing use? Other types are > @RecordType, @InventoryType, @TopNType. > @StreamData: Register this entity class into the remote module that makes > this entity could transfer between OAP server's nodes. > @StorageEntity: Identify the storage entity name, builder class for > serialization or deserialization this entity between memory and database. > > Those three annotations look like having clear responsibilities, but if you > spend time to reflect on them, you will find that the @XXType's level is > higher than others. > - @MetricsType and @InventoryType are must include @StreamData and > @StorageEntity. > - @RecordType and @TopNType are must exclude @StreamData. > > So, I suggest that let the @StreamData and @StorageEntity to be the > parameter of the @XXType. > > For example: > > @Stream(name = ServiceRelationClientSideMetrics.INDEX_NAME, scopeId = > DefaultScopeDefine.SERVICE_RELATION, storage = @Storage(builder = > ServiceRelationClientSideMetrics.Builder.class), kind = StreamKind.Metrics) > public class ServiceRelationClientSideMetrics extends Metrics { >
