{"id":2459,"date":"2025-01-10T16:45:31","date_gmt":"2025-01-10T15:45:31","guid":{"rendered":"https:\/\/france.magicsoftware.com\/blog\/?p=2459"},"modified":"2026-04-01T11:23:29","modified_gmt":"2026-04-01T10:23:29","slug":"opentelemetry-magicxpi-elasticsearch","status":"publish","type":"post","link":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/opentelemetry-magicxpi-elasticsearch\/","title":{"rendered":"OpenTelemetry &#8211; Magicxpi &#8211; Elasticsearch"},"content":{"rendered":"\n<p><strong>Goal<\/strong> : Send Magicxpi ActivityLog to OpenTelemetryCollector and export it to Elastic Cloud to build Dashboard with Kibana<\/p>\n\n\n\n<p><strong>Prerequisites <\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OpenTelemetry (OTEL) Collector installed<\/li>\n\n\n\n<li>Access to ElasticsearchCloud service<\/li>\n\n\n\n<li>IMM up and running with correct timezone<\/li>\n<\/ul>\n\n\n\n<p><strong>1\/ OpenTelemetry Installation and configuration<\/strong><\/p>\n\n\n\n<p>Follow the steps on this link <a href=\"https:\/\/opentelemetry.io\/docs\/collector\/quick-start\/\">Quick start | OpenTelemetry<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sudo snap install docker<\/li>\n\n\n\n<li>sudo apt install golang -y<\/li>\n\n\n\n<li>export GOBIN=${GOBIN:-$(go env GOPATH)\/bin}<\/li>\n\n\n\n<li>sudo docker pull otel\/opentelemetry-collector-contrib:0.116.1<\/li>\n\n\n\n<li>go install github.com\/open-telemetry\/opentelemetry-collector-contrib\/cmd\/telemetrygen@latest<\/li>\n<\/ul>\n\n\n\n<p><strong>2\/ Set correct timezone<\/strong><\/p>\n\n\n\n<p>On windows, Set a correct time zone in your \u00ab\u00a0<strong>values.yaml<\/strong>\u00a0\u00bb of your IMM (<strong>&lt;Magicxpi Installation>\\InMemoryMiddleware\\deploy<\/strong>) and deploy your IMM.<\/p>\n\n\n\n<p>For example, on the first line in the file, enter : <\/p>\n\n\n\n<p><strong>timeZone: &amp;timeZone \u00ab\u00a0Europe\/Paris\u00a0\u00bb<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"397\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG5-1024x397.png\" alt=\"\" class=\"wp-image-2502\" style=\"width:575px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG5-1024x397.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG5-300x116.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG5-768x298.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG5.png 1052w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>On the Linux machine verify your time zone by typing :<\/p>\n\n\n\n<p><strong>timedatectl status<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"563\" height=\"261\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG4.png\" alt=\"\" class=\"wp-image-2500\" style=\"width:470px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG4.png 563w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG4-300x139.png 300w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><\/figure>\n\n\n\n<p>If the value is different from the value in the file \u00ab\u00a0values.yaml\u00a0\u00bb, change it by typing (for my example)<\/p>\n\n\n\n<p><strong>sudo timedatectl set-timezone Europe\/Paris<\/strong><\/p>\n\n\n\n<p><strong>3\/ Opentelemetry config file<\/strong><\/p>\n\n\n\n<p>Create your opentelemetry config file (config.yaml) inside your home directory (in my case \/home\/ubuntu)<\/p>\n\n\n\n<p><strong><em>Proceed with Step 7\/ to get the Bearer<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"626\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-1024x626.png\" alt=\"\" class=\"wp-image-2523\" style=\"width:754px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-1024x626.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-300x183.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-768x470.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11.png 1181w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>4\/ Start the opentelemetry collector<\/strong><\/p>\n\n\n\n<p>After installing and configuring your OpenTelemetry Collector on the linux machine and set the timezone, you can start the collector by typing :<\/p>\n\n\n\n<p><strong>sudo docker run -p 4317:4317 -p 4318:4318 -v \/home\/ubuntu\/config.yaml:\/etc\/otelcol-contrib\/config.yaml -v \/home\/ubuntu\/service-account-key.json:\/etc\/otelcol-contrib\/service-account-key.json -e GOOGLE_APPLICATION_CREDENTIALS=\/etc\/otelcol-contrib\/service-account-key.json otel\/opentelemetry-collector-contrib:0.116.1 &#8211;config=\/etc\/otelcol-contrib\/config.yaml<\/strong><\/p>\n\n\n\n<p><em>4\/(*) deprecated<\/em><\/p>\n\n\n\n<p> s<strong>udo docker run -p 4317:4317 -p 4318:4318 -p 55679:55679 otel\/opentelemetry-collector-contrib:0.116.1 2<\/strong><\/p>\n\n\n\n<p>(or <strong>sudo docker run -p 4317:4317 -p 4318:4318 -p 55679:55679 otel\/opentelemetry-collector-contrib:0.116.1 2&gt;&amp;1 | tee collector-output.txt<\/strong>  if you want to have an output file)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"309\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG3-1024x309.png\" alt=\"\" class=\"wp-image-2497\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG3-1024x309.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG3-300x90.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG3-768x232.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG3-1536x463.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG3.png 1602w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now you need to identify the relevant OTEL config file  (config.yaml)<\/p>\n\n\n\n<p>you can enter : <strong>sudo ls -asl \/var\/snap\/docker\/common\/var-lib-docker\/overlay2\/<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"534\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG6.png\" alt=\"\" class=\"wp-image-2508\" style=\"width:591px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG6.png 958w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG6-300x167.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG6-768x428.png 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/figure>\n\n\n\n<p>you should see several uuid directories<\/p>\n\n\n\n<p>You can identify  the relevant uuid directory according to the datetime when you have started the OTEL collector<\/p>\n\n\n\n<p>if you don&rsquo;t know, you can stop the collector (<strong>sudo docker stop &lt;containerid&gt;<\/strong>) and restart it<\/p>\n\n\n\n<p>to get the container list and identify your containerid, you can enter : <strong>sudo docker ps -a<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"317\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG7-1024x317.png\" alt=\"\" class=\"wp-image-2511\" style=\"width:759px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG7-1024x317.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG7-300x93.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG7-768x238.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG7.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Your config directory file should be like this : \/var\/snap\/docker\/common\/var-lib-docker\/overlay2\/f279d3a4964f6dbb133c189c93e119ce4cfde768020a671a65cb1c8d07fa2d97\/diff\/etc\/otelcol-contrib\/config.yaml<\/p>\n\n\n\n<p>we will change the config file later on step 8 (*)<\/p>\n\n\n\n<p><strong>5\/ Create an xpi project <\/strong><\/p>\n\n\n\n<p>Create a simple magic xpi project with One flow with 2 steps One Save Message and One BAM step<\/p>\n\n\n\n<p>Set a scheduler trigger and execute the flow (Monitor log level is set to User in the IFS.INI: [MAGIC_IBOLT]MonitorLogLevel=* User)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"298\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG12-1024x298.png\" alt=\"\" class=\"wp-image-2528\" style=\"width:1200px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG12-1024x298.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG12-300x87.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG12-768x224.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG12.png 1518w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>5\/ Set the OpenTelemetry URL in the magicxpi Monitor<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"531\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG2-1-1024x531.png\" alt=\"\" class=\"wp-image-2481\" style=\"width:602px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG2-1-1024x531.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG2-1-300x156.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG2-1-768x398.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG2-1-1536x797.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG2-1.png 1903w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>IP value \u00ab\u00a0172.31.39.205\u00a0\u00bb corresponds to my Linux machine  where the OTEL collector is started.<\/p>\n\n\n\n<p><strong>6\/ Stop and Restart your magicxpi project <\/strong><\/p>\n\n\n\n<p>Verify in the file \u00ab\u00a0collector-output.txt\u00a0\u00bb that you receive magicxpi activitylog.<\/p>\n\n\n\n<p>The format should be like this :<\/p>\n\n\n\n<p>{\u00ab\u00a0_class\u00a0\u00bb:\u00a0\u00bbcom.magicsoftware.xpi.info.data.ActivityLog\u00a0\u00bb,\u00a0\u00bbblobexists\u00a0\u00bb:1,\u00a0\u00bbbpid\u00a0\u00bb:1,\u00a0\u00bbcategory\u00a0\u00bb:\u00a0\u00bb \u00ab\u00a0,\u00a0\u00bbcreateTimeStamp\u00a0\u00bb:\u00a0\u00bb2025-01-08T13:59:20.995Z\u00a0\u00bb,\u00a0\u00bbcreatedTimeInNanoSec\u00a0\u00bb:5 35067875665199,\u00a0\u00bbdateOfWritingToSpace\u00a0\u00bb:{},\u00a0\u00bbextension\u00a0\u00bb:\u00a0\u00bbtxt\u00a0\u00bb,\u00a0\u00bbfilelocation\u00a0\u00bb:\u00a0\u00bb \u00ab\u00a0,\u00a0\u00bbflowid\u00a0\u00bb:1,\u00a0\u00bbflowrequestid\u00a0\u00bb:15,\u00a0\u00bbfsid\u00a0\u00bb:15,\u00a0\u00bbfsstep\u00a0\u00bb:1,\u00a0\u00bbmessagestring\u00a0\u00bb:\u00a0\u00bb{\\\u00a0\u00bbmessage\\\u00a0\u00bb:\\\u00a0\u00bbthis is a test 53960995\\\u00a0\u00bb}\u00a0\u00bb,\u00a0\u00bbmessagetypeid\u00a0\u00bb:14,\u00a0\u00bbobjectlevel\u00a0\u00bb:3,\u00a0\u00bbprojectkey\u00a0\u00bb:\u00a0\u00bbTest\u00a0\u00bb,\u00a0\u00bbrootfsId\u00a0\u00bb:15,\u00a0\u00bbrunId\u00a0\u00bb:\u00a0\u00bb77d5c62e-8282-4e10-9809-0d878d629d2b\u00a0\u00bb,\u00a0\u00bbserverid\u00a0\u00bb:1,\u00a0\u00bbseverity\u00a0\u00bb:0,\u00a0\u00bbstatuscode\u00a0\u00bb:0,\u00a0\u00bbt imeZone\u00a0\u00bb:\u00a0\u00bbEurope\/Paris\u00a0\u00bb,\u00a0\u00bbuserblob\u00a0\u00bb:null,\u00a0\u00bbusercode\u00a0\u00bb:0,\u00a0\u00bbuserkey1&Prime;:\u00a0\u00bb \u00ab\u00a0,\u00a0\u00bbuserkey2&Prime;:\u00a0\u00bb \u00ab\u00a0,\u00a0\u00bbversionkey\u00a0\u00bb:\u00a0\u00bb \u00ab\u00a0}<\/p>\n\n\n\n<p><strong>7\/ Get the OTEL URL and Bearer<\/strong><\/p>\n\n\n\n<p>if it&rsquo;s ok then you can change your OTEL configuration file to add Elastic exporter in other to get your magicxpi activity log in Elastic.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You need to retrieve the Elastic APM Server URL and the authorization Bearer from the Elastic console (Integrations=&gt;Elastic APM)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"339\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG9-1024x339.png\" alt=\"\" class=\"wp-image-2516\" style=\"width:704px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG9-1024x339.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG9-300x99.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG9-768x254.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG9.png 1485w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scroll down and copy the secret token<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG10-1024x527.png\" alt=\"\" class=\"wp-image-2519\" style=\"width:461px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG10-1024x527.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG10-300x154.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG10-768x395.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG10.png 1311w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><em>8\/ (*) deprecated (related to 4 (*)<\/em><\/p>\n\n\n\n<p>You can now edit the OTEL config.yaml file (step 3)<\/p>\n\n\n\n<p>sudo vi \/var\/snap\/docker\/common\/var-lib-docker\/overlay2\/f279d3a4964f6dbb133c189c93e119ce4cfde768020a671a65cb1c8d07fa2d97\/diff\/etc\/otelcol-contrib\/config.yaml<\/p>\n\n\n\n<p>If you want to export only logs to Elastic (add otlphttp in the exporters section) and to have only 4318 as the recevier port, your config file should be like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"626\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-1024x626.png\" alt=\"\" class=\"wp-image-2523\" style=\"width:754px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-1024x626.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-300x183.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11-768x470.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG11.png 1181w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>9\/ ELK Console<\/p>\n\n\n\n<p>Switch to the Elastic console, you should see your activity log when your discover your index.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"367\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG13-1024x367.png\" alt=\"\" class=\"wp-image-2530\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG13-1024x367.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG13-300x108.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG13-768x275.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG13-1536x551.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG13.png 1885w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>From now, you can build Dashboards and do other stuff inside ELK.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">(*)<strong> Magic is sending the activitylog in incremental way.<\/strong><\/p>\n\n\n\n<p>(**) Related documentation <a href=\"https:\/\/opentelemetry.io\/docs\/collector\/quick-start\" title=\"\">https:\/\/opentelemetry.io\/docs\/collector\/quick-start<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Goal : Send Magicxpi ActivityLog to OpenTelemetryCollector and export it to Elastic Cloud to build Dashboard with Kibana Prerequisites : 1\/ OpenTelemetry Installation and configuration Follow the steps on this link Quick start | OpenTelemetry 2\/ Set correct timezone On windows, Set a correct time zone in your \u00ab\u00a0values.yaml\u00a0\u00bb of your IMM (&lt;Magicxpi Installation>\\InMemoryMiddleware\\deploy) and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2462,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[69,4,97,70],"tags":[72,14,71],"class_list":["post-2459","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elasticsearch","category-magic-xpi","category-observability","category-opentelemetry","tag-elasticcloud","tag-magic-xpi","tag-opentelemetry"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/01\/OTEL_MG1.png","_links":{"self":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/2459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/comments?post=2459"}],"version-history":[{"count":88,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/2459\/revisions"}],"predecessor-version":[{"id":3454,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/2459\/revisions\/3454"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media\/2462"}],"wp:attachment":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=2459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=2459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=2459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}