How to add the filed in perflog/web_api_details.csv?

Hi all,

I need your assistance to solving the situation which is important for my project. I need to modify the logfiles which I know generated automatically. I just need to add some field in the perflog/web_api_details.csv file.

How shall I do this?  Is there a way to manipulate log4jconfig.xml in Appian cloud environment to capture additional information in perflog/web_api_details .csv file.

Please suggest. Thanks in Advance.

  Discussion posts and replies are publicly visible

Parents
  • I don't think this is possible. Some logs can be updated to change the logging level but I'm not aware of a way to add additional columns to any logs. What is your use case?

  • Thanks for your quick response Peter.

    We are trying track unique identifier for individual api call. When the api call made need to add the unique reference number for each api call in web_api_details.csv file and need track on database also.

    Thank You.

  • 0
    Appian Employee
    in reply to tthiru

    Thanks for the additional details - this use case makes sense! For your questions:

    1) You definitely want to use the integration_details.csv logs. This log is for requests made from Appian, while the web API logs are for requests made to Appian.

    2) It isn't possible to add the endpoint for the request because integrations work differently than web APIs. Web APIs have a fixed endpoint in Appian while the integration call can use a dynamic endpoint (the endpoint itself accepts an expression that gets evaluated at run time).

    I think your best bet is to use the Integration UUID column. This column refers to the design object in Appian that performs the integration. If you group your calls by UUID, then you can find the corresponding design object and determine which endpoint it is using. It's a bit more tedious, but it should still get you the information you need.

    To find the corresponding design object given that UUID, you can do an expression search to find the correct objects.

  • Hi Peter,

    Thanks for your response. This really helps. In that case, can we create a DB table in our Appian application where I can persist the pair i.e. Integration UUID and its associated Endpoint name at the time in the Appian application where the integration object is called? Also, would this additional step of persisting these data have any performance impact on Appian application?

    Regards,

    Thiru

  • 0
    Appian Employee
    in reply to tthiru

    Yeah you should be able to persist that data in the database (and I wouldn't think it would have any impact on performance). The only downside is it may not be that easy to get the UUIDs for all of your integrations - there isn't necessarily a bulk export of the UUIDs, so you might need to either view them manually or export all of the integrations and do some kind of parsing from the export log.

  • Thanks again for your quick response. Below is not too clear for us in your above response.

    "The only downside is it may not be that easy to get the UUIDs for all of your integrations - there isn't necessarily a bulk export of the UUIDs, so you might need to either view them manually or export all of the integrations and do some kind of parsing from the export log."

    So do you mean when an Appian application makes an API call, it is not guaranteed that we can get the associated UUID and with that the associated endpoint name every time for us to persist them in our DB table? If so, can you please explain how do we make it consistent using exported file containing integration objects you mentioned about? We can surely parse the exported file but still we need the mapping information around the integration objects and real time API calls. So requesting for some insights on this.

  • 0
    Appian Employee
    in reply to tthiru

    Sorry, I don't think my repsonse was very clear. The issue isn't with the logging - the logging will work great and will always return the correct UUID. The problem is then trying to figure out which integration is related to that UUID. That's the procedure that is pretty much entirely manual.

    Likely what you will need to do is to go to each integration in your design environment and export all of them. The export log contains the UUID and the name of each integration that you can get from the export Then, manually create a table that includes the UUID and a description of the integration. If you have a large number of integrations, this may take a while. Once you have this table, then you can match them up with your log.

  • Thanks a lot Peter. Your responses have given as a lot of insights and clarity for our development. Appreciate it. We will design the system based on your guidance.

    Regards,

    Thiru

  • Hi Peter,

    We need some help to understand the fields belonging from the file integration_details.csv.
    We already gone through the link below to understand these fields details like Mean total time, Mean preparation time, Mean execution time and  Mean transform time and we don’t find complete information.
    https://docs.appian.com/suite/help/21.1/Logging.html#integration-performance-logs

    We have some assumptions, please confirm that our assumptions are correct or not?

    Mean preparation time: We assumed that the mean preparation time is the time taken to request parameters, post the calls sending to the external api's.

    Mean execution time:- We assumed that the mean execution time is the time taken api to prepare the response parameter and send it back to the calling appian application.

    Mean transform time:- We assume that the mean transform time is the time taken by the appian application to process the data coming in as part of response parameter from external api.

    We already know that the mean total time is summation of Mean preparation time, Mean execution time and mean transform time. We also wanted to know that network latency time is included with mean total time? if not, then please confirm which component(Mean prepare time, Mean execution time, Mean transform time) is carrying the network latency time.

    Thanks in advance.

    Sourav.

  • The easiest way to think about it is that prepare and transform are both time that Appian spends creating the request structure and formatting the sponse respsectively. The execution time is all the time between the request getting sent and receiving a response back, so it would include the latency time. I think the integration designer actually explains this well by showing that the middle time is "Send | Wait | Receive".

  • Hi peter.

    We need your assistance on these two fields Integration UUID and connected system UUID in Integration_Details.csv.

    We see that in integration_details.csv, that mean time values are calculated by aggregating based on certain columns. Please explain which columns are used for aggregation logic. Is it combination of Integration UUID and connected system UUID? Also, what if the frequency for aggregation? is it 1(one) Hour?.

    Thanks in advance.

    Thanks,

    Nandhakishore.

  • It should just be integration UUID that is used for grouping on the data. Also all Details logs are written to once per hour: docs.appian.com/.../Logging.html

Reply Children
No Data