use of com.newrelic.agent.stats.StatsEngineImpl in project newrelic-java-agent by newrelic.
the class DataCollectionConfigCrossAgentTest method createAndVerifyErrorTrace.
private void createAndVerifyErrorTrace(Long expectedCount, Long expectedEndpointCount) {
ErrorServiceImpl errorService = new ErrorServiceImpl(APP_NAME);
rpmService.setErrorService(errorService);
long eventsToCreate = 1;
if (expectedCount > 1) {
eventsToCreate = expectedCount;
}
for (long i = 0; i < eventsToCreate; i++) {
ThrowableError error = ThrowableError.builder(errorService.getErrorCollectorConfig(), APP_NAME, "metric", new Throwable(), System.currentTimeMillis()).build();
errorService.reportError(error);
}
// Verify that the correct number of traces were stored in the reservoir
assertEquals(expectedCount.intValue(), errorService.getTracedErrorsCount());
// Verify that we sent (or didn't send) the appropriate traces
errorService.harvestTracedErrors(APP_NAME, new StatsEngineImpl());
int errorTracesSeen = rpmService.getErrorTracesSeen();
assertEquals(expectedEndpointCount.intValue(), errorTracesSeen);
}
use of com.newrelic.agent.stats.StatsEngineImpl in project newrelic-java-agent by newrelic.
the class ErrorServiceTest method userParametersEnabledRequestDisabled.
@SuppressWarnings("unchecked")
@Test
public void userParametersEnabledRequestDisabled() throws Exception {
Map<String, Object> config = createConfig("java.lang.Exception");
setConfigAttributes(config, true, false);
EventTestHelper.createServiceManager(config);
ErrorServiceImpl errorService = (ErrorServiceImpl) ServiceFactory.getRPMService().getErrorService();
MockRPMService rpmService = (MockRPMService) ServiceFactory.getRPMService();
rpmService.setIsConnected(true);
TransactionService txService = ServiceFactory.getTransactionService();
Throwable error = new ArrayIndexOutOfBoundsException();
Map<String, String> requestParams = new HashMap<>();
requestParams.put("key1", "value1");
Map<String, Object> agentParams = new HashMap<>();
agentParams.put("key2", 2L);
Map<String, Object> userParams = new HashMap<>();
userParams.put("key3", "value3");
Map<String, Object> errorParams = new HashMap<>();
errorParams.put("key4", "value4");
Map<String, Object> intrinsics = new HashMap<>();
intrinsics.put("key5", "value5");
intrinsics.put("key6", 7.77);
intrinsics.put("key7", 18L);
TransactionData data = createTransactionData(true, 0, error, false, requestParams, userParams, agentParams, errorParams, intrinsics);
TransactionStats transactionStats = new TransactionStats();
txService.transactionFinished(data, transactionStats);
List<TracedError> actualErrors = errorService.getAndClearTracedErrors(APP_NAME, new StatsEngineImpl());
Assert.assertEquals(1, actualErrors.size());
JSONArray serializedError = (JSONArray) AgentHelper.serializeJSON(actualErrors.get(0));
Assert.assertNotNull(serializedError);
Map<String, Object> params = (Map<String, Object>) serializedError.get(4);
Assert.assertEquals(4, params.size());
Assert.assertNotNull(params.get("stack_trace"));
Assert.assertNotNull(params.get("intrinsics"));
Assert.assertNotNull(params.get("agentAttributes"));
Assert.assertNotNull(params.get("userAttributes"));
Map<String, Object> actual = (Map<String, Object>) params.get("intrinsics");
Assert.assertEquals(8, actual.size());
Assert.assertEquals("value5", actual.get("key5"));
Assert.assertEquals(7.77, (Double) actual.get("key6"), .001);
Assert.assertEquals(18L, actual.get("key7"));
Assert.assertEquals(false, actual.get("error.expected"));
actual = (Map<String, Object>) params.get("agentAttributes");
Assert.assertEquals(2, actual.size());
Assert.assertEquals(2L, actual.get("key2"));
Assert.assertEquals("/dude", actual.get("request.uri"));
actual = (Map<String, Object>) params.get("userAttributes");
Assert.assertEquals(2, actual.size());
Assert.assertEquals("value3", actual.get("key3"));
Assert.assertEquals("value4", actual.get("key4"));
}
use of com.newrelic.agent.stats.StatsEngineImpl in project newrelic-java-agent by newrelic.
the class ErrorServiceTest method userParametersEnabled.
@SuppressWarnings("unchecked")
@Test
public void userParametersEnabled() throws Exception {
Map<String, Object> config = createConfig("java.lang.Exception");
setConfigAttributes(config, true, true);
EventTestHelper.createServiceManager(config);
ErrorServiceImpl errorService = (ErrorServiceImpl) ServiceFactory.getRPMService().getErrorService();
MockRPMService rpmService = (MockRPMService) ServiceFactory.getRPMService();
rpmService.setIsConnected(true);
TransactionService txService = ServiceFactory.getTransactionService();
Throwable error = new ArrayIndexOutOfBoundsException();
Map<String, String> requestParams = new HashMap<>();
requestParams.put("key1", "value1");
Map<String, Object> agentParams = new HashMap<>();
agentParams.put("key2", 2L);
Map<String, Object> userParams = new HashMap<>();
userParams.put("key3", "value3");
Map<String, Object> errorParams = new HashMap<>();
errorParams.put("key4", "value4");
Map<String, Object> intrinsics = new HashMap<>();
intrinsics.put("key5", "value5");
intrinsics.put("key6", 7.77);
intrinsics.put("key7", 18L);
TransactionData data = createTransactionData(true, 0, error, false, requestParams, userParams, agentParams, errorParams, intrinsics);
TransactionStats transactionStats = new TransactionStats();
txService.transactionFinished(data, transactionStats);
List<TracedError> actualErrors = errorService.getAndClearTracedErrors(APP_NAME, new StatsEngineImpl());
Assert.assertEquals(1, actualErrors.size());
JSONArray serializedError = (JSONArray) AgentHelper.serializeJSON(actualErrors.get(0));
Assert.assertNotNull(serializedError);
Map<String, Object> params = (Map<String, Object>) serializedError.get(4);
Assert.assertEquals(4, params.size());
Assert.assertNotNull(params.get("stack_trace"));
Assert.assertNotNull(params.get("intrinsics"));
Assert.assertNotNull(params.get("agentAttributes"));
Assert.assertNotNull(params.get("userAttributes"));
Map<String, Object> actual = (Map<String, Object>) params.get("intrinsics");
Assert.assertEquals(8, actual.size());
Assert.assertEquals("value5", actual.get("key5"));
Assert.assertEquals(7.77, (Double) actual.get("key6"), .001);
Assert.assertEquals(18L, actual.get("key7"));
Assert.assertEquals(false, actual.get("error.expected"));
actual = (Map<String, Object>) params.get("agentAttributes");
Assert.assertEquals(3, actual.size());
Assert.assertEquals("value1", actual.get("request.parameters.key1"));
Assert.assertEquals(2L, actual.get("key2"));
Assert.assertEquals("/dude", actual.get("request.uri"));
actual = (Map<String, Object>) params.get("userAttributes");
Assert.assertEquals(2, actual.size());
Assert.assertEquals("value3", actual.get("key3"));
Assert.assertEquals("value4", actual.get("key4"));
}
use of com.newrelic.agent.stats.StatsEngineImpl in project newrelic-java-agent by newrelic.
the class ErrorServiceTest method attributesDisabled.
@SuppressWarnings("unchecked")
@Test
public void attributesDisabled() throws Exception {
Map<String, Object> config = createConfig("java.lang.Exception");
setConfigAttributes(config, false, true);
EventTestHelper.createServiceManager(config);
ErrorServiceImpl errorService = (ErrorServiceImpl) ServiceFactory.getRPMService().getErrorService();
MockRPMService rpmService = (MockRPMService) ServiceFactory.getRPMService();
rpmService.setIsConnected(true);
TransactionService txService = ServiceFactory.getTransactionService();
Throwable error = new ArrayIndexOutOfBoundsException();
Map<String, String> requestParams = new HashMap<>();
requestParams.put("key1", "value1");
Map<String, Object> agentParams = new HashMap<>();
agentParams.put("key2", 2L);
Map<String, Object> userParams = new HashMap<>();
userParams.put("key3", "value3");
Map<String, Object> errorParams = new HashMap<>();
errorParams.put("key4", "value4");
Map<String, Object> intrinsics = new HashMap<>();
TransactionData data = createTransactionData(true, 0, error, false, requestParams, userParams, agentParams, errorParams, intrinsics);
TransactionStats transactionStats = new TransactionStats();
txService.transactionFinished(data, transactionStats);
List<TracedError> actualErrors = errorService.getAndClearTracedErrors(APP_NAME, new StatsEngineImpl());
Assert.assertEquals(1, actualErrors.size());
JSONArray serializedError = (JSONArray) AgentHelper.serializeJSON(actualErrors.get(0));
Assert.assertNotNull(serializedError);
Map<String, Object> params = (Map<String, Object>) serializedError.get(4);
Assert.assertEquals(2, params.size());
Assert.assertNotNull(params.get("stack_trace"));
Map<String, Object> intrinsicsParam = (Map<String, Object>) params.get("intrinsics");
Assert.assertEquals(false, intrinsicsParam.get("error.expected"));
}
use of com.newrelic.agent.stats.StatsEngineImpl in project newrelic-java-agent by newrelic.
the class ErrorServiceTest method attributesDisabledWithIntrinsics.
@SuppressWarnings("unchecked")
@Test
public void attributesDisabledWithIntrinsics() throws Exception {
Map<String, Object> config = createConfig("java.lang.Exception");
setConfigAttributes(config, false, true);
EventTestHelper.createServiceManager(config);
ErrorServiceImpl errorService = (ErrorServiceImpl) ServiceFactory.getRPMService().getErrorService();
MockRPMService rpmService = (MockRPMService) ServiceFactory.getRPMService();
rpmService.setIsConnected(true);
TransactionService txService = ServiceFactory.getTransactionService();
Throwable error = new ArrayIndexOutOfBoundsException();
Map<String, String> requestParams = new HashMap<>();
requestParams.put("key1", "value1");
Map<String, Object> agentParams = new HashMap<>();
agentParams.put("key2", 2L);
Map<String, Object> userParams = new HashMap<>();
userParams.put("key3", "value3");
Map<String, Object> errorParams = new HashMap<>();
errorParams.put("key4", "value4");
Map<String, Object> intrinsics = new HashMap<>();
intrinsics.put("key5", "value5");
TransactionData data = createTransactionData(true, 0, error, false, requestParams, userParams, agentParams, errorParams, intrinsics);
TransactionStats transactionStats = new TransactionStats();
txService.transactionFinished(data, transactionStats);
List<TracedError> actualErrors = errorService.getAndClearTracedErrors(APP_NAME, new StatsEngineImpl());
Assert.assertEquals(1, actualErrors.size());
JSONArray serializedError = (JSONArray) AgentHelper.serializeJSON(actualErrors.get(0));
Assert.assertNotNull(serializedError);
Map<String, Object> params = (Map<String, Object>) serializedError.get(4);
Assert.assertEquals(2, params.size());
Assert.assertNotNull(params.get("stack_trace"));
Assert.assertNotNull(params.get("intrinsics"));
Map<String, Object> actual = (Map<String, Object>) params.get("intrinsics");
Assert.assertEquals(6, actual.size());
Assert.assertEquals("value5", actual.get("key5"));
Assert.assertEquals(false, actual.get("error.expected"));
}
Aggregations