Overview
Plug-in Notes:
Key Features & Functionality
The Appian Log Reader Plug-in contains functionality to:
Hi, we are using this approach for getting data from specifically the login-audit.csv:We are using the Appian Usage Insights Plugin: Appian Usage InsightsAdvantage is that for High Available environments it collects all audited logins (from all application server nodes) not only the one from the node you are running this on, which is one of the disadvantages mentioned to this plug-in, in the notes:
Disadvantage is that it only captures the successful logins and not any other data than username and login timestamp. So if you need failed attemps and/or source-ip or other data in this csv, this plug-in cannot be used.For using the usage insights plugin you do not have to install the entire License Applications mentioned on the app market page, only the plug-in itself in the admin console is enough. We use the results from this Usage Insights plug-in in a daily process to get all logins of the previous day (you will specify a specific audit-startdate and enddate for the timeframe required, which has a limit of max 30 days old). In a process model, which gets the csv as document output from this plug-in's smart-service, we then use Import csv to database plug-in smart service (part of excel tools plug-in: Excel Tools) to load this data in the database and perform logic on that dataset like filtering and use it in interfaces for user insights.Maybe this is a workable solution for you as well?
Hi, I want to filter rows from login-audit.csv based on the usernames I have. Any idea about that.
You could try using this tool - it helps present the log data in a much clearer format.
I could use an example or better documentation on how to use this plug in. I am looking to query the tomcat-stdOut.log for ERRORS, parse the information, store in a database table, and display in a grid for our developers to monitor.
i've been complaining about this issue for years and it's basically gone ignored. there's no excuse for the output not either returning a dictionary, map, or at least value-escaped CSV (with delimiters), or preferably, JSON string. Instead we get a mess that's impossible to meaningfully parse.
Hello! We use this plugin on a very regular basis to scrape and maintain the history of certain logs so we can determine the health of our environment based upon internally-developed tools. We'd like to extend this to the process execution engines logs. However, those logs have dynamic names which include a date and a timestamp (for better or worse, we can argue that elsewhere...).
Would it be possible to enhance this plugin to support a wildcard character in the filename itself? Alternatively, would it be possible to add a function that can get a directory listing of *.csv/*.log file names matching a search? For example, I'd like all file names with "execution_by_category" in the name.
It's possible to automate the scraping of process execution logs with no modifications to the plugin, but it takes a bit of brute force to determine the file names, which makes it quite a cumbersome to do at scale across dozens of engines / files.
I found the following problems after inspection of Log Reader Record Only 7.5 (1).zip
Problems (1):content _a-0000e58d-c17f-8000-5249-01ef9001ef90_7961 "Lr_errorExpression": The content [id= uuid=_a-0000e58d-c17f-8000-5249-01ef9001ef90_7961] was not imported because a required precedent is missing: content [uuid=_a-0000da18-b569-8000-927a-010000010000_18681 location=Expression Rule Definition] cannot be found. (APNX-1-4070-001) (APNX-1-4071-006)
Cascading Problems (2):content _a-0000e58d-c17f-8000-5249-01ef9001ef90_7955 "LR_reportWithError": The content [id= uuid=_a-0000e58d-c17f-8000-5249-01ef9001ef90_7955] was not imported because a required precedent is missing: content [uuid=_a-0000e58d-c17f-8000-5249-01ef9001ef90_7961 location=Interface Definition] cannot be found. (APNX-1-4070-001) (APNX-1-4071-006)tempoReport 3d2a70fa-f6a1-4cf8-be18-fe9ee7648df4 "Report with Design Error": The tempoReport [id= uuid=3d2a70fa-f6a1-4cf8-be18-fe9ee7648df4] was not imported because a required precedent is missing: content [uuid=_a-0000e58d-c17f-8000-5249-01ef9001ef90_7955 location=SAIL Dashboard] cannot be found. (APNX-1-4070-001) (APNX-1-4071-006)
Warnings (1):pluginInfo com.appiancorp.ps.logreader "Log Reader": The plug-in "Log Reader" is referenced by object(s) in the package. The plug-in is on a different version in the target environment (APNX-1-4071-097)
Success (69):group _e-0000d964-5fe5-8000-9277-010000010000_8 "LR Viewers"group _e-0000d964-5fe5-8000-9277-010000010000_7 "LR Admins"content _a-0000d94d-ebfc-8000-927a-010000010000_331 "Log Reader Rules and Constants"content _a-0000d94d-f0be-8000-927a-010000010000_333 "Record"content _a-0000d94d-f0be-8000-927a-010000010000_335 "LR_recordFacet_LastModified"content _a-0000d94d-f0be-8000-927a-010000010000_334 "LR_recordFacet_Extension"content _a-0000d94d-ebfc-8000-927a-010000010000_332 "LR_recordSource"content _a-0000d94d-f0be-8000-927a-010000010000_336 "Dashboard"content _a-0000d95d-3f26-8000-927a-010000010000_392 "Util"content _a-0000d94d-f0be-8000-927a-010000010000_337 "LR_returnFirstInput"content _a-0000d94d-f0be-8000-927a-010000010000_339 "LR_getCellFromLogRow"content _a-0000d94d-f0be-8000-927a-010000010000_338 "LR_createGridColumn"content _a-0000d960-5e44-8000-927a-010000010000_432 "LR_getItemFromSplit"content a688374a-0533-4b07-8e7d-e9aa396b32b4 "LR_displayLog"content 31fc8218-ca8e-416c-b979-8c2ad0a64e17 "LR_dashboardAdditional_LineChart"content _a-0000d954-74da-8000-927a-010000010000_348 "LR_recordFacet_Parent"content _a-0000d979-e92b-8000-927a-010000010000_569 "LR_RECORD_TYPE_LOGS"content 6e8e8975-f9a3-4dad-812d-3030382a276f "LR_displayCsv"content 9ba53d16-2aeb-4ed4-8ee6-5fc26f421ffb "LR_logDashboardMain"content _a-0000d962-59ae-8000-927a-010000010000_445 "Reports"content 60128d70-45ce-4a69-ac2c-7d3382735bdb "LR_reportBarChart"content _a-0000d965-94ed-8000-927a-010000010000_485 "LR_REPORT_BATCHSIZE"content cb85f4cf-a47e-4e6c-b681-028ce40bdaf6 "LR_reportExpressionPerformance"content ae3bb261-59ae-41d0-83fe-f0cef9dcadd4 "LR_reportDataStorePerformance"content _a-0000d965-94ed-8000-927a-010000010000_493 "Process"content _a-0000d965-94ed-8000-927a-010000010000_495 "LR_getLatestSystemCsvRow"content _a-0000e58d-c17f-8000-5249-01ef9001ef90_7943 "LR_ARRAY_DATA_METRIC_HEADERS"content _a-0000d965-94ed-8000-927a-010000010000_497 "LR_getCellFromLatestRow"content _a-0000d96d-7ef0-8000-927a-010000010000_522 "LRP_listViewTitle"content _a-0000d96d-7ef0-8000-927a-010000010000_506 "Log Reader"content _a-0000d96d-7ef0-8000-927a-010000010000_507 "Log Reader Files"content _a-0000d96d-7ef0-8000-927a-010000010000_508 "Images"content _a-0000d96d-7ef0-8000-927a-010000010000_512 "all-good"content _a-0000d96d-7ef0-8000-927a-010000010000_513 "Images"content _a-0000d96d-7ef0-8000-927a-010000010000_514 "LR_IMG_ALLGOOD"content _a-0000d96d-7ef0-8000-927a-010000010000_510 "memorylow-diskok"content _a-0000d96d-7ef0-8000-927a-010000010000_515 "LR_IMG_MEMLOWDISKOK"content _a-0000d96d-7ef0-8000-927a-010000010000_509 "memorylow-disklow"content _a-0000d96d-7ef0-8000-927a-010000010000_516 "LR_IMG_MEMLOWDISKLOW"content _a-0000d96d-7ef0-8000-927a-010000010000_511 "memoryok-disklow"content _a-0000d96d-7ef0-8000-927a-010000010000_517 "LR_IMG_MEMOKDISKLOW"content _a-0000d96d-7ef0-8000-927a-010000010000_518 "LRP_listViewImage"content _a-0000d971-76d8-8000-927a-010000010000_538 "LRP_listViewDetails"content _a-0000d96d-7ef0-8000-927a-010000010000_502 "LRP_listView"content 20967afa-3bf8-4ec7-ad30-fa27de31d4c7 "LR_reportDiskPartition"content 7d305b97-0e7f-4425-9d8a-bc532aefa9cd "LR_reportLoadAverage"content 05f3bada-3583-4ba9-b0d5-a0fec98914ca "LR_reportHeapMemory"content _a-0000d965-94ed-8000-927a-010000010000_494 "LR_getLatestSystemCsvMetric"content _a-0000d95d-3f26-8000-927a-010000010000_393 "LR_getStartIndex"content 0ffe1725-3552-40b0-8ead-5b7bc47d0415 "LR_tempDashboard"content _a-0000d971-76d8-8000-927a-010000010000_531 "Reports"content _a-0000e58d-c17f-8000-5249-01ef9001ef90_7842 "LR_NUM_SYSTEM_HEALTH_MONITER_TIMER"content _a-0000e58d-c17f-8000-5249-01ef9001ef90_7829 "LR_getLatestSystemDesignError"content _a-0000d971-76d8-8000-927a-010000010000_533 "LR_IS_DEBUG"content _a-0000d971-76d8-8000-927a-010000010000_532 "Recent System Health Monitor Instances"content _a-0000d974-2bd1-8000-927a-010000010000_546 "LR_DOCURL_CDTSBYREFERENCE"content cec28edc-f288-4c1d-b5ed-9ead3c27da4c "LR_reportCDTsByReference"content 3bdbf258-0f38-478f-b537-657e402188bc "LRP_processDashboard"processModelFolder _g-0000d965-94f0-8000-927a-010000010000_1 "Log Reader"processModel 0004d965-a806-8000-927a-010000010000 "System Health Monitor"application _a-0000d94d-f0be-8000-927a-010000010000_341 "Log Reader Record Only 7.5"recordType af24d8b8-550c-4a1f-a961-51f40b1364e5 "System Log"recordType e1bc0aad-a91f-469c-a2ea-6b65694f8012 "System Health Monitor"tempoReport 48e8da37-ebc6-4603-91e7-deb8d7fecd37 "System Performance - Slow Expressions"tempoReport 94c9d79d-2044-4685-aa2e-749bf6fdf8d4 "System Performance - Slow Data Store Operations"tempoReport be512fef-3312-4c4d-9a18-8e0263234e24 "System Health - Disk Usage"tempoReport 145d6ae7-3dd7-4a46-9d4c-c3d91b13eef8 "System Health - Java Heap Memory"tempoReport 49bb70b1-29fb-4ece-ba6c-46fd55dafcd8 "System Health - Load Average"tempoReport c085c656-8afd-4185-9178-f3ae484b0310 "Best Practices Violations - CDTs byreference"
Inspect completed in 2.28 seconds
Does this not work for the audit/design_objects.csv log? The rows return a null and the totalCount is -1
In the readcsvlog function and all its variants, the row results are returned by concatenating each field with the variable private static final String SEPARATOR, whose value is a comma. When concatenating values that contain a comma, there is no way to parse the results. If it is not possible to return the rows as an array of strings (with each field as an element), could an extension be made to allow passing the output separator value?
Anyone run into this error? I'm simply passing in pagingInfo to the recordTypeSource function through use of the a!query() function.Expression evaluation error at function 'systemlogsrecordtypesource' [line 7]: The passed parameter(s) are of the wrong type. Received the type com.appiancorp.common.xml.JaxbConversionException: JAXB failure trying to convert typed value TypedValue[it=1474,v={TypedValue[it=1478,v=<null>],TypedValue[it=1154,v=<null>],{1,101,<null>}}] to java class com.appiancorp.common.query.Query.Code Snippet:
systemlogsrecordtypesource( a!query(pagingInfo: a!pagingInfo(startIndex: 1, batchSize: 101) ))