Search in sources :

Example 1 with MetricType

use of com.navercorp.pinpoint.profiler.monitor.metric.MetricType in project pinpoint by naver.

the class ThriftModule method configure.

@Override
protected void configure() {
    logger.info("configure {}", this.getClass().getSimpleName());
    ThriftTransportConfig thriftTransportConfig = loadThriftTransportConfig();
    bind(ThriftTransportConfig.class).toInstance(thriftTransportConfig);
    bind(TransactionIdEncoder.class).to(DefaultTransactionIdEncoder.class).in(Scopes.SINGLETON);
    Key<CommandDispatcher> commandDispatcher = Key.get(CommandDispatcher.class);
    bind(commandDispatcher).toProvider(CommandDispatcherProvider.class).in(Scopes.SINGLETON);
    // expose(commandDispatcher);
    TypeLiteral<SpanProcessor<TSpan, TSpanChunk>> spanPostProcessorType = new TypeLiteral<SpanProcessor<TSpan, TSpanChunk>>() {
    };
    bind(spanPostProcessorType).toProvider(SpanProcessorProvider.class).in(Scopes.SINGLETON);
    bind(ConnectionFactoryProvider.class).toProvider(ConnectionFactoryProviderProvider.class).in(Scopes.SINGLETON);
    Key<PinpointClientFactory> pinpointClientFactory = Key.get(PinpointClientFactory.class, DefaultClientFactory.class);
    bind(pinpointClientFactory).toProvider(PinpointClientFactoryProvider.class).in(Scopes.SINGLETON);
    // expose(pinpointClientFactory);
    bind(HeaderTBaseSerializer.class).toProvider(HeaderTBaseSerializerProvider.class).in(Scopes.SINGLETON);
    // EnhancedDataSender
    TypeLiteral<EnhancedDataSender<MetaDataType>> dataSenderTypeLiteral = new TypeLiteral<EnhancedDataSender<MetaDataType>>() {
    };
    bind(dataSenderTypeLiteral).toProvider(TcpDataSenderProvider.class).in(Scopes.SINGLETON);
    expose(dataSenderTypeLiteral);
    // Bind AgentDataSender to EnhancedDataSender
    Key<EnhancedDataSender<MetaDataType>> agentDataSender = Key.get(dataSenderTypeLiteral, AgentDataSender.class);
    bind(agentDataSender).to(dataSenderTypeLiteral).in(Scopes.SINGLETON);
    expose(agentDataSender);
    // Bind MetadataDataSender to EnhancedDataSender
    Key<EnhancedDataSender<MetaDataType>> metadataDataSender = Key.get(dataSenderTypeLiteral, MetadataDataSender.class);
    bind(metadataDataSender).to(dataSenderTypeLiteral).in(Scopes.SINGLETON);
    expose(metadataDataSender);
    Key<Timer> spanStatConnectTimer = Key.get(Timer.class, SpanStatChannelFactory.class);
    bind(spanStatConnectTimer).toProvider(SpanStatConnectTimerProvider.class).in(Scopes.SINGLETON);
    Key<ChannelFactory> spanStatChannelFactory = Key.get(ChannelFactory.class, SpanStatChannelFactory.class);
    bind(spanStatChannelFactory).toProvider(SpanStatChannelFactoryProvider.class).in(Scopes.SINGLETON);
    Key<PinpointClientFactory> spanClientFactory = Key.get(PinpointClientFactory.class, SpanDataSender.class);
    bind(spanClientFactory).toProvider(SpanClientFactoryProvider.class).in(Scopes.SINGLETON);
    Key<PinpointClientFactory> statClientFactory = Key.get(PinpointClientFactory.class, StatDataSender.class);
    bind(statClientFactory).toProvider(StatClientFactoryProvider.class).in(Scopes.SINGLETON);
    TypeLiteral<MessageConverter<SpanType, TBase<?, ?>>> thriftMessageConverter = new TypeLiteral<MessageConverter<SpanType, TBase<?, ?>>>() {
    };
    Key<MessageConverter<SpanType, TBase<?, ?>>> spanMessageConverterKey = Key.get(thriftMessageConverter, SpanDataSender.class);
    bind(spanMessageConverterKey).toProvider(SpanThriftMessageConverterProvider.class).in(Scopes.SINGLETON);
    // expose(spanMessageConverterKey);
    TypeLiteral<MessageConverter<MetaDataType, TBase<?, ?>>> metadataMessageConverter = new TypeLiteral<MessageConverter<MetaDataType, TBase<?, ?>>>() {
    };
    Key<MessageConverter<MetaDataType, TBase<?, ?>>> metadataMessageConverterKey = Key.get(metadataMessageConverter, MetadataDataSender.class);
    bind(metadataMessageConverterKey).toProvider(MetadataMessageConverterProvider.class).in(Scopes.SINGLETON);
    // expose(metadataMessageConverterKey);
    // Stat Thrift Converter
    TypeLiteral<MessageConverter<MetricType, TBase<?, ?>>> statMessageConverter = new TypeLiteral<MessageConverter<MetricType, TBase<?, ?>>>() {
    };
    Key<MessageConverter<MetricType, TBase<?, ?>>> statMessageConverterKey = Key.get(statMessageConverter, StatDataSender.class);
    bind(statMessageConverterKey).toProvider(StatThriftMessageConverterProvider.class).in(Scopes.SINGLETON);
    TypeLiteral<DataSender<SpanType>> spanDataSenderType = new TypeLiteral<DataSender<SpanType>>() {
    };
    Key<DataSender<SpanType>> spanDataSender = Key.get(spanDataSenderType, SpanDataSender.class);
    bind(spanDataSender).toProvider(SpanDataSenderProvider.class).in(Scopes.SINGLETON);
    expose(spanDataSender);
    TypeLiteral<DataSender<MetricType>> statDataSenderType = new TypeLiteral<DataSender<MetricType>>() {
    };
    Key<DataSender<MetricType>> statDataSender = Key.get(statDataSenderType, StatDataSender.class);
    bind(statDataSender).toProvider(StatDataSenderProvider.class).in(Scopes.SINGLETON);
    expose(statDataSender);
    // For AgentInfoSender
    // TypeLiteral<AgentInfoFactory> agentInfoFactoryTypeLiteral = new TypeLiteral<AgentInfoFactory>() {};
    // bind(agentInfoFactoryTypeLiteral).toProvider(AgentInfoFactoryProvider.class).in(Scopes.SINGLETON);
    // expose(agentInfoFactoryTypeLiteral);
    TypeLiteral<MessageConverter<Object, ResultResponse>> resultMessageConverter = new TypeLiteral<MessageConverter<Object, ResultResponse>>() {
    };
    Key<MessageConverter<Object, ResultResponse>> resultMessageConverterKey = Key.get(resultMessageConverter, ResultConverter.class);
    bind(resultMessageConverterKey).toProvider(ThriftMessageToResultConverterProvider.class).in(Scopes.SINGLETON);
    expose(resultMessageConverterKey);
    Key<ModuleLifeCycle> rpcModuleLifeCycleKey = Key.get(ModuleLifeCycle.class, Names.named("RPC-MODULE"));
    bind(rpcModuleLifeCycleKey).to(ThriftModuleLifeCycle.class).in(Scopes.SINGLETON);
    expose(rpcModuleLifeCycleKey);
}
Also used : MetadataMessageConverterProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.MetadataMessageConverterProvider) ResultResponse(com.navercorp.pinpoint.profiler.sender.ResultResponse) DefaultTransactionIdEncoder(com.navercorp.pinpoint.profiler.context.thrift.DefaultTransactionIdEncoder) PinpointClientFactoryProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.PinpointClientFactoryProvider) EnhancedDataSender(com.navercorp.pinpoint.profiler.sender.EnhancedDataSender) DataSender(com.navercorp.pinpoint.profiler.sender.DataSender) EnhancedDataSender(com.navercorp.pinpoint.profiler.sender.EnhancedDataSender) ConnectionFactoryProviderProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.ConnectionFactoryProviderProvider) SpanThriftMessageConverterProvider(com.navercorp.pinpoint.profiler.context.thrift.SpanThriftMessageConverterProvider) CommandDispatcherProvider(com.navercorp.pinpoint.profiler.context.provider.CommandDispatcherProvider) MetaDataType(com.navercorp.pinpoint.profiler.metadata.MetaDataType) SpanStatChannelFactoryProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.SpanStatChannelFactoryProvider) ChannelFactory(org.jboss.netty.channel.ChannelFactory) MessageConverter(com.navercorp.pinpoint.profiler.context.thrift.MessageConverter) SpanType(com.navercorp.pinpoint.profiler.context.SpanType) HeaderTBaseSerializerProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.HeaderTBaseSerializerProvider) StatClientFactoryProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.StatClientFactoryProvider) ThriftMessageToResultConverterProvider(com.navercorp.pinpoint.profiler.context.thrift.ThriftMessageToResultConverterProvider) DefaultThriftTransportConfig(com.navercorp.pinpoint.profiler.context.thrift.config.DefaultThriftTransportConfig) ThriftTransportConfig(com.navercorp.pinpoint.profiler.context.thrift.config.ThriftTransportConfig) StatThriftMessageConverterProvider(com.navercorp.pinpoint.profiler.context.thrift.StatThriftMessageConverterProvider) SpanDataSenderProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.SpanDataSenderProvider) MetricType(com.navercorp.pinpoint.profiler.monitor.metric.MetricType) SpanStatConnectTimerProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.SpanStatConnectTimerProvider) TSpanChunk(com.navercorp.pinpoint.thrift.dto.TSpanChunk) TcpDataSenderProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.TcpDataSenderProvider) SpanProcessor(com.navercorp.pinpoint.profiler.context.compress.SpanProcessor) SpanClientFactoryProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.SpanClientFactoryProvider) TypeLiteral(com.google.inject.TypeLiteral) PinpointClientFactory(com.navercorp.pinpoint.rpc.client.PinpointClientFactory) CommandDispatcher(com.navercorp.pinpoint.profiler.receiver.CommandDispatcher) StatDataSenderProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.StatDataSenderProvider) Timer(org.jboss.netty.util.Timer) TSpan(com.navercorp.pinpoint.thrift.dto.TSpan) SpanProcessorProvider(com.navercorp.pinpoint.profiler.context.provider.thrift.SpanProcessorProvider) TBase(org.apache.thrift.TBase)

Example 2 with MetricType

use of com.navercorp.pinpoint.profiler.monitor.metric.MetricType in project pinpoint by naver.

the class PluginApplicationContextModule method configure.

@Override
protected void configure() {
    logger.info("configure {}", this.getClass().getSimpleName());
    final DataSender<SpanType> spanDataSender = newUdpSpanDataSender();
    logger.debug("spanDataSender:{}", spanDataSender);
    TypeLiteral<DataSender<SpanType>> spanDataSenderType = new TypeLiteral<DataSender<SpanType>>() {
    };
    Key<DataSender<SpanType>> spanDataSenderKey = Key.get(spanDataSenderType, SpanDataSender.class);
    bind(spanDataSenderKey).toInstance(spanDataSender);
    final DataSender<MetricType> statDataSender = newUdpStatDataSender();
    logger.debug("statDataSender:{}", statDataSender);
    TypeLiteral<DataSender<MetricType>> statDataSenderType = new TypeLiteral<DataSender<MetricType>>() {
    };
    Key<DataSender<MetricType>> statDataSenderKey = Key.get(statDataSenderType, StatDataSender.class);
    bind(statDataSenderKey).toInstance(statDataSender);
    bind(StorageFactory.class).to(TestSpanStorageFactory.class);
    bind(PinpointClientFactory.class).toProvider(Providers.of((PinpointClientFactory) null));
    EnhancedDataSender<MetaDataType> enhancedDataSender = newTcpDataSender();
    logger.debug("enhancedDataSender:{}", enhancedDataSender);
    TypeLiteral<EnhancedDataSender<MetaDataType>> dataSenderTypeLiteral = new TypeLiteral<EnhancedDataSender<MetaDataType>>() {
    };
    bind(dataSenderTypeLiteral).toInstance(enhancedDataSender);
    ServerMetaDataRegistryService serverMetaDataRegistryService = newServerMetaDataRegistryService();
    bind(ServerMetaDataRegistryService.class).toInstance(serverMetaDataRegistryService);
    bind(ApiMetaDataService.class).toProvider(MockApiMetaDataServiceProvider.class).in(Scopes.SINGLETON);
}
Also used : SpanDataSender(com.navercorp.pinpoint.profiler.context.module.SpanDataSender) StatDataSender(com.navercorp.pinpoint.profiler.context.module.StatDataSender) EnhancedDataSender(com.navercorp.pinpoint.profiler.sender.EnhancedDataSender) DataSender(com.navercorp.pinpoint.profiler.sender.DataSender) MetricType(com.navercorp.pinpoint.profiler.monitor.metric.MetricType) EnhancedDataSender(com.navercorp.pinpoint.profiler.sender.EnhancedDataSender) SpanType(com.navercorp.pinpoint.profiler.context.SpanType) StorageFactory(com.navercorp.pinpoint.profiler.context.storage.StorageFactory) TypeLiteral(com.google.inject.TypeLiteral) PinpointClientFactory(com.navercorp.pinpoint.rpc.client.PinpointClientFactory) MetaDataType(com.navercorp.pinpoint.profiler.metadata.MetaDataType) DefaultServerMetaDataRegistryService(com.navercorp.pinpoint.profiler.context.DefaultServerMetaDataRegistryService) ServerMetaDataRegistryService(com.navercorp.pinpoint.profiler.context.ServerMetaDataRegistryService)

Example 3 with MetricType

use of com.navercorp.pinpoint.profiler.monitor.metric.MetricType in project pinpoint by naver.

the class CollectJobTest method run.

@Test
public void run() throws Exception {
    AgentStatMetricCollector<AgentStatMetricSnapshot> agentStatMetricCollector = mockAgentStatMetricCollector();
    Mockito.when(agentStatMetricCollector.collect()).thenReturn(new AgentStatMetricSnapshot());
    DataSender<MetricType> dataSender = mock(DataSender.class);
    CollectJob job = new CollectJob(dataSender, "agent", 0, agentStatMetricCollector, 1);
    job.run();
    Mockito.verify(dataSender).send(any(AgentStatMetricSnapshotBatch.class));
}
Also used : AgentStatMetricSnapshot(com.navercorp.pinpoint.profiler.monitor.metric.AgentStatMetricSnapshot) MetricType(com.navercorp.pinpoint.profiler.monitor.metric.MetricType) AgentStatMetricSnapshotBatch(com.navercorp.pinpoint.profiler.monitor.metric.AgentStatMetricSnapshotBatch) Test(org.junit.Test)

Example 4 with MetricType

use of com.navercorp.pinpoint.profiler.monitor.metric.MetricType in project pinpoint by naver.

the class AgentStatMonitorTest method setUp.

@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
    when(agentStatCollector.collect()).thenReturn(new AgentStatMetricSnapshot());
    this.tBaseRecorder = new TBaseRecorder<>();
    ListenableDataSender.Listener<? extends MetricType> recorderAdaptor = new TBaseRecorderAdaptor<>(tBaseRecorder);
    ListenableDataSender<MetricType> listenableDataSender = new ListenableDataSender<>("testDataSender");
    listenableDataSender.setListener((ListenableDataSender.Listener<MetricType>) recorderAdaptor);
    this.dataSender = listenableDataSender;
}
Also used : AgentStatMetricSnapshot(com.navercorp.pinpoint.profiler.monitor.metric.AgentStatMetricSnapshot) TBaseRecorderAdaptor(com.navercorp.pinpoint.test.TBaseRecorderAdaptor) MetricType(com.navercorp.pinpoint.profiler.monitor.metric.MetricType) ListenableDataSender(com.navercorp.pinpoint.test.ListenableDataSender) Before(org.junit.Before)

Example 5 with MetricType

use of com.navercorp.pinpoint.profiler.monitor.metric.MetricType in project pinpoint by naver.

the class StatDataSenderProvider method get.

@Override
public DataSender<MetricType> get() {
    if ("TCP".equalsIgnoreCase(transportType)) {
        if ("OIO".equalsIgnoreCase(ioType)) {
            logger.warn("TCP transport not support OIO type.(only support NIO)");
        }
        PinpointClientFactory pinpointClientFactory = clientFactoryProvider.get();
        MessageSerializer<MetricType, byte[]> messageSerializer = new ThriftMessageSerializer<>(messageConverter);
        return new TcpDataSender<>("StatDataSender", ip, port, pinpointClientFactory, messageSerializer, writeQueueSize);
    } else {
        UdpDataSenderFactory<MetricType> factory = new UdpDataSenderFactory<>(ip, port, UDP_EXECUTOR_NAME, writeQueueSize, timeout, sendBufferSize, messageConverter);
        return factory.create(ioType);
    }
}
Also used : ThriftMessageSerializer(com.navercorp.pinpoint.profiler.sender.ThriftMessageSerializer) PinpointClientFactory(com.navercorp.pinpoint.rpc.client.PinpointClientFactory) MetricType(com.navercorp.pinpoint.profiler.monitor.metric.MetricType) TcpDataSender(com.navercorp.pinpoint.profiler.sender.TcpDataSender) UdpDataSenderFactory(com.navercorp.pinpoint.profiler.sender.UdpDataSenderFactory)

Aggregations

MetricType (com.navercorp.pinpoint.profiler.monitor.metric.MetricType)5 PinpointClientFactory (com.navercorp.pinpoint.rpc.client.PinpointClientFactory)3 TypeLiteral (com.google.inject.TypeLiteral)2 SpanType (com.navercorp.pinpoint.profiler.context.SpanType)2 MetaDataType (com.navercorp.pinpoint.profiler.metadata.MetaDataType)2 AgentStatMetricSnapshot (com.navercorp.pinpoint.profiler.monitor.metric.AgentStatMetricSnapshot)2 DataSender (com.navercorp.pinpoint.profiler.sender.DataSender)2 EnhancedDataSender (com.navercorp.pinpoint.profiler.sender.EnhancedDataSender)2 DefaultServerMetaDataRegistryService (com.navercorp.pinpoint.profiler.context.DefaultServerMetaDataRegistryService)1 ServerMetaDataRegistryService (com.navercorp.pinpoint.profiler.context.ServerMetaDataRegistryService)1 SpanProcessor (com.navercorp.pinpoint.profiler.context.compress.SpanProcessor)1 SpanDataSender (com.navercorp.pinpoint.profiler.context.module.SpanDataSender)1 StatDataSender (com.navercorp.pinpoint.profiler.context.module.StatDataSender)1 CommandDispatcherProvider (com.navercorp.pinpoint.profiler.context.provider.CommandDispatcherProvider)1 ConnectionFactoryProviderProvider (com.navercorp.pinpoint.profiler.context.provider.thrift.ConnectionFactoryProviderProvider)1 HeaderTBaseSerializerProvider (com.navercorp.pinpoint.profiler.context.provider.thrift.HeaderTBaseSerializerProvider)1 MetadataMessageConverterProvider (com.navercorp.pinpoint.profiler.context.provider.thrift.MetadataMessageConverterProvider)1 PinpointClientFactoryProvider (com.navercorp.pinpoint.profiler.context.provider.thrift.PinpointClientFactoryProvider)1 SpanClientFactoryProvider (com.navercorp.pinpoint.profiler.context.provider.thrift.SpanClientFactoryProvider)1 SpanDataSenderProvider (com.navercorp.pinpoint.profiler.context.provider.thrift.SpanDataSenderProvider)1