hello, i used 8.2.3, i use observability .
In my case, I'm using pipelines to customize transaction.name. since the upgrade to 8.3, the list of service.name transactions is displayed correctly at first, then after a few seconds no transactions are displayed.
as soon as I delete _data_stream/metrics-apm.internal-default , everything returns to normal and I manage to see all the transactions for a few seconds then the problem returns
look and you will see that the transactions appear with the new config and then no customization is displayed
in this case do a delete datastream delete _data_stream/metrics-apm.internal-default
look in the APM that the information is displayed correctly then after a moment we go back to square one
I suspect the behaviour you are observing to be coming from the data Kibana uses to show transactions. Kibana prefers using aggregated metrics document with fallback to individual transaction documents for showing the transactions. The aggregated metrics documents are created by APM-Server (ref). These metrics documents use the raw transaction and not the one processed by the ingest pipeline.
So, based on above facts, once APM server produces the aggregated metrics document the UI updates to prioritise these documents over individual transaction documents. These documents are stored in metrics-apm.internal-default datastream, thus when you delete this datastream the UI shifts back to using individual transaction documents but after APM-Server again publishes a new aggregated metric document the UI is updated.
I would advise you to reconsider using transaction-id to generate transaction name. The ideal usage would be to have generic transaction names originating from your instrumentation, for example GET /query/{id} (NOTE that instead of using different IDs the name uses a generic placeholder {id} to have efficient transaction groupings).
Hello @lahsivjar
thank you for your feedback, indeed I was able to understand that. for information the use of transaction.id is just an example to reproduce the problem very quickly, in my case I am dealing with a mono servlet application and I need the other elements for an append transaction.name. this customization has great value for my team.
I was able to solve the problem by disabling the use of aggregate metrics.
I believe that transaction.name must be common in all processors (metric, span, errors, transactions) and also in terms of storage this field must not be duplicated. it's just an opinion.
Unless I am mistaken, there is default.pipeline and final.pipeline in index template and the indexes via datastream inherit this definition, in addition the two pipelines are used by the ELK eco-system and which may change in future versions, for me it will be oppotuin to have a 3 pipeline to add at the level of the custom component like custom.pipeline and which will be used to add any customization. this option will reduce the impact of upgrades to zero.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.