{"id":48453,"date":"2021-06-02T16:23:52","date_gmt":"2021-06-02T23:23:52","guid":{"rendered":"https:\/\/ephesoft.com\/docs\/?post_type=docs&p=48453"},"modified":"2021-06-02T16:23:52","modified_gmt":"2021-06-02T23:23:52","slug":"new-relic","status":"publish","type":"docs","link":"https:\/\/ephesoft.com\/docs\/products\/transact\/features-and-functions\/administrator\/reporting\/new-relic\/","title":{"rendered":"New Relic"},"content":{"rendered":"
In Transact version 2020.1.04, we introduced support for New Relic. New Relic is a widely used third-party monitoring tool that allows you to gather data based on custom events in Transact. You can use custom events to measure and monitor the following information:<\/p>\n
To use New Relic with Transact, the following prerequisites must be in place:<\/p>\n
Note: <\/strong>If you do not already have a New Relic account, you can sign up for a free trial on the New Relic site<\/a>.<\/p>\n New Relic is an observability platform that allows you to bring in data from any digital source so that you can fully understand your system and how to improve it. Data is reported in the form of events, which have multiple attributes (key-value pairs). Event data will be reported to your New Relic platform, where you can query to retrieve data.<\/p>\n The following actions are now being posted as New Relic custom events:<\/p>\n Using these events, you can query for the following information:<\/p>\n The following steps outline how to configure New Relic for on-premises Transact licenses.<\/p>\n To access your data, go to one.newrelic.com<\/a> and click the query your data<\/strong> icon, displayed in the screenshot below.<\/p>\n <\/p>\n This section will cover the custom batch events that are supported for New Relic.<\/p>\n When a batch is picked up for processing, a custom event will be sent to New Relic containing the following information.<\/p>\n A query can be raised against appName like<\/p>\n When a batch is in Review<\/strong>, a custom event will be sent to New Relic containing the following information.<\/p>\n Find all batches that entered the READY_FOR_REVIEW state in the last 30 days:<\/p>\n Find all batches that entered the READY_FOR_REVIEW state in the last 30 days for a specific Transact Instance:<\/p>\n Find whether a specific batch entered the READY_FOR_REVIEW state in the last 30 days:<\/p>\n When a batch is in Validation<\/strong>, a custom event will be sent to New Relic containing the following information.<\/p>\n When a batch finishes successfully, a custom event will be sent to New Relic containing the following information.<\/p>\n The number of ingested documents number documents processed (classified documents):<\/p>\n The number of documents processed against the given duration:<\/p>\n The number of documents processed against batch class within a given duration:<\/p>\n Pages per minute (PPM) processed:<\/p>\n When batch processing fails, a custom event will be sent to New Relic containing the following information.<\/p>\n Events can be queried using the sending event name; For example, to query the record for the finished batch.<\/p>\n The number of documents processed against the host\/app name can be queried as<\/p>\n The number of documents processed against host and batch source can be queried as<\/p>\n When you log in, a custom event will be sent to New Relic containing the following information. The AD, LDAP, SSO, and Tomcat (default) login methods will be counted.<\/p>\n<\/a>Feature Overview<\/h2>\n
\n
\n
\n
\n
<\/a>New Relic Startup Configuration<\/h2>\n
\n
\n
\n
<\/a>New Relic Custom Events – Batch Events<\/h2>\n
<\/a>Batch Picked Up<\/h3>\n
EventName: BATCH_PICKED_UP_EVENT {<\/code>
\nappId: <type number> (assigned by New Relic),<\/code>
\nappName: <type String> \"(app_name Defined in New Relic configuration file(newrelic.yml)),<\/code>
\nbatchClassIdentifier: <type String> ,<\/code>
\nbatchClassName: <type String> ,<\/code>
\nbatchInstanceIdentifier: <type String> ,<\/code>
\nbatchName: <type String> ,<\/code>
\nbatchStartTime: <type number> (Epoch Unix Time Stamp),<\/code>
\nbatchStatus: <type String> ,<\/code>
\nentityGuid: <type String> (assigned by New Relic),<\/code>
\nhost: <type String> ,<\/code>
\nrealAgentId: <type number> (assigned by New Relic),<\/code>
\ntimestamp: <type number> (assigned by New Relic)<\/code>
\n}<\/code><\/p>\n
<\/a>Sample Query<\/h4>\n
SELECT * from BATCH_PICKED_UP_EVENT SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_PICKED_UP_EVENT where appName = 'APPLICATION-NAME' SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_PICKED_UP_EVENT where appName ='APPLICATION-NAME' and batchInstanceIdentifier = 'BATCH IDENTIFIER' SINCE 30 days ago<\/code><\/p>\n
<\/a>Batch Ready For Review<\/h3>\n
EventName: BATCH_READY_FOR_REVIEW_EVENT<\/code>
\n{<\/code>
\nappId:<type number>(assigned by New Relic),<\/code>
\nappName:<type String>\"(app_name Defined in New Relic configuration file(newrelic.yml)),<\/code>
\nbatchClassIdentifier:<type String>,<\/code>
\nbatchClassName:<type String>,<\/code>
\nbatchDocumentsSize:<type number>(In Bytes),<\/code>
\nbatchInstanceIdentifier:<type String>,<\/code>
\nbatchName:<type String>,<\/code>
\nbatchProcessingTime:<type number>(millisecond),<\/code>
\nbatchSource:<type String>,<\/code>
\nbatchStartTime:<type number>(Epoch Unix Time Stamp),<\/code>
\nbatchStatus:<type String>,<\/code>
\nentityGuid:<type String>(assigned by New Relic),<\/code>
\nhost:<type String>,<\/code>
\nnumDocuments:<type number>,<\/code>
\nnumPages:<type number>,<\/code>
\nnumSourceDocuments:<type number>,<\/code>
\nrealAgentId:<type number>(assigned by New Relic),<\/code>
\ntimestamp:<type number>(assigned by New Relic)<\/code>
\n}<\/code><\/p>\n
<\/a>Sample Query<\/h4>\n
SELECT * from BATCH_READY_FOR_REVIEW_EVENT SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_READY_FOR_REVIEW_EVENT where appName = 'APPLICATION-NAME' SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_READY_FOR_REVIEW_EVENT where appName ='APPLICATION-NAME' and batchInstanceIdentifier = 'BATCH IDENTIFIER' SINCE 30 days ago<\/code><\/p>\n
<\/a>Batch Ready For Validation<\/h3>\n
EventName: BATCH_READY_FOR_VALIDATION_EVENT<\/code>
\n{<\/code>
\nappId:<type number>(assigned by New Relic),<\/code>
\nappName:<type String>\"(app_name Defined in New Relic configuration file(newrelic.yml)),<\/code>
\nbatchClassIdentifier:<type String>,<\/code>
\nbatchClassName:<type String>,<\/code>
\nbatchDocumentsSize:<type number>(In Bytes),<\/code>
\nbatchInstanceIdentifier:<type String>,<\/code>
\nbatchName:<type String>,<\/code>
\nbatchProcessingTime:<type number>(millisecond),<\/code>
\nbatchSource:<type String>,<\/code>
\nbatchStartTime:<type number>(Epoch Unix Time Stamp),<\/code>
\nbatchStatus:<type String>,<\/code>
\nentityGuid:<type String>(assigned by New Relic),<\/code>
\nhost:<type String>,<\/code>
\nnumDocuments:<type number>,<\/code>
\nnumPages:<type number>,<\/code>
\nnumSourceDocuments:<type number>,<\/code>
\nrealAgentId:<type number>(assigned by New Relic),<\/code>
\ntimestamp:<type number>(assigned by New Relic)<\/code>
\n}<\/code><\/p>\n
Batch Finished<\/h3>\n
EventName: BATCH_FINISHED_EVENT<\/code>
\n{<\/code>
\nappId:<type number>(assigned by New Relic),<\/code>
\nappName:<type String>\"(app_name Defined in New Relic configuration file(newrelic.yml)),<\/code>
\nbatchClassIdentifier:<type String>,<\/code>
\nbatchClassName:<type String>,<\/code>
\nbatchDocumentsSize:<type number>(In Bytes),<\/code>
\nbatchFinishTime: <type number>(Epoch Unix Time Stamp),,<\/code>
\nbatchInstanceIdentifier:<type String>,<\/code>
\nbatchName:<type String>,<\/code>
\nbatchProcessingTime:<type number>(millisecond),<\/code>
\nbatchSource:<type String>,<\/code>
\nbatchStartTime:<type number>(Epoch Unix Time Stamp),<\/code>
\nbatchStatus:<type String>,<\/code>
\nentityGuid:<type String>(assigned by New Relic),<\/code>
\nhost:<type String>,<\/code>
\nnumDocuments:<type number>,<\/code>
\nnumPages:<type number>,<\/code>
\nnumSourceDocuments:<type number>,<\/code>
\nrealAgentId:<type number>(assigned by New Relic),<\/code>
\ntimestamp:<type number>(assigned by New Relic)<\/code>
\n}<\/code><\/p>\n
<\/a>Sample Query<\/h4>\n
SELECT * from BATCH_FINISHED_EVENT SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_FINISHED_EVENT where appName = 'APPLICATION-NAME' SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_FINISHED_EVENT where appName ='APPLICATION-NAME' and batchInstanceIdentifier = 'BATCH IDENTIFIER' SINCE 30 days ago<\/code><\/p>\n
SELECT numSourceDocuments,numDocuments from BATCH_FINISHED_EVENT where appName ='APPLICATION-NAME' and batchInstanceIdentifier = 'BATCH IDENTIFIER' SINCE 30 days ago<\/code><\/p>\n
SELECT count(numDocuments) from BATCH_FINISHED_EVENT where appName ='APPLICATION-NAME' SINCE 30 days ago<\/code><\/p>\n
SELECT count(numDocuments) from BATCH_FINISHED_EVENT where appName ='APPLICATION-NAME' FACET batchClassName SINCE 30 days ago<\/code><\/p>\n
SELECT sum(numPages)\/((max(batchFinishTime) - min(batchStartTime))\/60) FROM BATCH_FINISHED_EVENT where appName ='APPLICATION-NAME' limit 2 Since 1 hours ago<\/code><\/p>\n
<\/a>Batch Failed<\/h3>\n
EventName: BATCH_FAILED_EVENT<\/code>
\n{<\/code>
\nappId:<type number>(assigned by New Relic),<\/code>
\nappName:<type String>\"(app_name Defined in New Relic configuration file(newrelic.yml)),<\/code>
\nbatchClassIdentifier:<type String>,<\/code>
\nbatchClassName:<type String>,<\/code>
\nbatchDocumentsSize:<type number>(In Bytes),<\/code>
\nbatchInstanceIdentifier:<type String>,<\/code>
\nbatchName:<type String>,<\/code>
\nbatchProcessingTime:<type number>(millisecond),<\/code>
\nbatchSource:<type String>,<\/code>
\nbatchStartTime:<type number>(Epoch Unix Time Stamp),<\/code>
\nbatchStatus:<type String>,<\/code>
\nentityGuid:<type String>(assigned by New Relic),<\/code>
\nhost:<type String>,<\/code>
\nnumDocuments:<type number>,<\/code>
\nnumPages:<type number>,<\/code>
\nnumSourceDocuments:<type number>,<\/code>
\nrealAgentId:<type number>(assigned by New Relic),<\/code>
\ntimestamp:<type number>(assigned by New Relic)<\/code>
\n}<\/code><\/p>\n
<\/a>Sample Query<\/h4>\n
SELECT * from BATCH_FAILED_EVENT SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_FAILED_EVENT where appName = 'APPLICATION-NAME' SINCE 30 days ago<\/code><\/p>\n
SELECT * from BATCH_FAILED_EVENT where appName ='APPLICATION-NAME' and batchInstanceIdentifier = 'BATCH IDENTIFIER' SINCE 30 days ago<\/code><\/p>\n
SELECT host,appName,batchClassIdentifier,batchSource,numDocuments FROM BATCH_FINISHED_EVENT Since 30 days ago<\/code><\/p>\n
SELECT sum(numDocuments) as 'documents processed' FROM BATCH_FINISHED_EVENT FACET host Since 30 days ago<\/code><\/p>\n
SELECT sum(numDocuments) as 'documents processed' FROM BATCH_FINISHED_EVENT FACET host,batchSource Since 30 days ago<\/code><\/p>\n
<\/a>New Relic Custom Events – User Events<\/h2>\n
EventName: USER_LOGIN_EVENT<\/code>
\n{<\/code>
\nappId:<type number>(assigned by New Relic),<\/code>
\nappName:<type String>\"(app_name Defined in New Relic configuration file(newrelic.yml)),<\/code>
\nentityGuid:<type String>(assigned by New Relic),<\/code>
\nhost:<type String>,<\/code>
\nuserRoles:<String>,<\/code>
\nrealAgentId:<type number>(assigned by New Relic),<\/code>
\ntimestamp:<type number>(assigned by New Relic),<\/code>
\nuserName:<String><\/code>
\n}<\/code><\/p>\n
<\/a>Example: AD instance<\/h4>\n
EventName: USER_LOGIN_EVENT<\/code>
\n{<\/code>
\n\"appId\": 123456789,<\/code>
\n\"appName\": \"APPLICATION-NAME\",<\/code>
\n\"entityGuid\": \"67e03f59c9b54d3988818cdfd47f09f6\",<\/code>
\n\"host\": \"A1BC23DEF\",<\/code>
\n\"userRoles\": [\"Tax Digital Transformation SecG1\"],<\/code>
\n\"realAgentId\": 123456789,<\/code>
\n\"timestamp\": 1600343402576,<\/code>
\n\"userName\": \"engineering\"<\/code>
\n}<\/code><\/p>\n
<\/a>Example: SSO instance<\/h4>\n
EventName: USER_LOGIN_EVENT<\/code>
\n{<\/code>
\n\"appId\": 123456789,<\/code>
\n\"appName\": APPLICATION-NAME,<\/code>
\n\"entityGuid\": \"67e03f59c9b54d3988818cdfd47f09f6\",<\/code>
\n\"host\": \"A1BC23DEF\",<\/code>
\n\"realAgentId\": 123456789,<\/code>
\n\"timestamp\": 1600970940583,<\/code>
\n\"userName\": \"ephesoft\",<\/code>
\n\"userRoles\":\"[\"CAPTURE-Administrator\",\"CAPTURE-SystemAdministrator\",\"CAPTURE-User\",\"Administrator\"]\"<\/code>
\n}<\/code><\/p>\n
<\/a>Example: Tomcat instance<\/h4>\n
EventName: USER_LOGIN_EVENT<\/code>