<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: EXTRACT TOPOLOGY WITH OPENPIPELINE in Open Q&amp;A</title>
    <link>https://community.dynatrace.com/t5/Open-Q-A/EXTRACT-TOPOLOGY-WITH-OPENPIPELINE/m-p/300442#M39148</link>
    <description>&lt;P&gt;Tip for you.&amp;nbsp; The new SmartScape extraction is great, but it doesn't do everything the old Topology Extraction rules did (yet).&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What I do is create something I call "dummy" extensions.&amp;nbsp; They are Dynatrace Extensions without a data source (typically an extension is used to collect information from a SNMP/WMI/SQL/Prometheus/JMX/Python source.&amp;nbsp; But I found you don't&amp;nbsp;&lt;EM&gt;have&amp;nbsp;&lt;/EM&gt;to have a data source defined in your extension.).&lt;/P&gt;&lt;P&gt;What I do with these extensions is define my OpenPipeline route and pipelines (&lt;EM&gt;this includes my processors, smartscape extractions, metric/event extractions, and bucket assignments&lt;/EM&gt;), my classic custom topology extractions, detail screens that place the data on the Infrastructure &amp;amp; Operations application (&lt;EM&gt;this is one of the things you have to have classic custom topology extractions for.&amp;nbsp; Extracting just the Smartscape nodes from your telemetry will not allow those entities to show up in the new Infrastructure &amp;amp; Operations app nor in the classic custom device "screens"&lt;/EM&gt;.), overview dashboards (&lt;EM&gt;both latest dashboard documents and classic dashboards&lt;/EM&gt;), and alert templates.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've basically trained my Cursor (&lt;EM&gt;I use Claude Opus as the model as I found that Auto mode; which relies mostly on Cursor's own Composer model; is more prone to mistakes than Claude&lt;/EM&gt;) by feeding it Dynatrace's "Dynatrace for AI" skill that they share on their public Github repo as well as feeding it all of Dynatrace's Extension docs and a bunch of different official extensions as examples.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It works really well and I can spin up a new working "dummy" extension super quick.&amp;nbsp; It usually takes several iterations where I have to correct it and make changes, but it's still CONSIDERABLY faster than when I built these myself.&amp;nbsp; I've gone from weeks to days.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Having said all that, to address your question directly, Edge is synonymous with the old "Relationships" portion of the classic topology model.&amp;nbsp; Smartscape Nodes are synonymous with the classic "General Types" or entity extraction portion of the old topology model.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, what I'm saying is that an Edge is for connecting two Smartscape Nodes together.&lt;BR /&gt;&lt;BR /&gt;So, my first question would be: Are you extracting your desired entities that you want to relate together as Nodes?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you are already extracting the SERVICE_CART and SERVICE_CALLER entities as Nodes, then you also need to make sure that the data you are using to relate the two together is present in a single span.&amp;nbsp; OpenPipeline processors only look at one record at a time.&amp;nbsp; They are unaware of any other span in a distributed trace.&amp;nbsp; In other words, the way you relate them is by extracting both Node types from a single span.&amp;nbsp; This will put the entity id of both nodes into that span record.&amp;nbsp; Then, the edge simply defines a relationship between those two nodes.&lt;/P&gt;&lt;P&gt;You can't define a relationship between two disparate nodes if the ID values for both don't show up in the same record.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Having said that, Dynatrace already maps services together in a distributed trace.&amp;nbsp; There shouldn't be a need to establish that relationship if you are already seeing the spans for those services in the same trace.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you aren't seeing that already, then I would say check your service detection rules.&amp;nbsp; You might not be detecting the various services properly and that's why you are seeing the issue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 08 Jun 2026 14:59:35 GMT</pubDate>
    <dc:creator>36Krazyfists</dc:creator>
    <dc:date>2026-06-08T14:59:35Z</dc:date>
    <item>
      <title>EXTRACT TOPOLOGY WITH OPENPIPELINE</title>
      <link>https://community.dynatrace.com/t5/Open-Q-A/EXTRACT-TOPOLOGY-WITH-OPENPIPELINE/m-p/300437#M39146</link>
      <description>&lt;P&gt;Hi community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let's say that a SERVICE named "cart_service" is called by 2 others one (named "webapp_service" and "mobileapp_service")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;By using a span openpipeline,&amp;nbsp; for each collected traces that involved "cart_service", I would like :&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;to Get the&amp;nbsp;caller service id (&lt;SPAN&gt;dt.smartscape.service)&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;to Add this ID as new field in&amp;nbsp;"cart_service" in&amp;nbsp;subtrace root span&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I've tried to use "Smartscape edge" feature like below&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;//DQL processor

fieldsadd dt.smartscape.service_cart = dt.smartscape.service&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;// Smartscape edge processor

Source type : SERVICE_CART
Source ID field name : dt.smartscape.service_cart

Custom EDGE_TYPE : called_by
Target type : SERVICE_CALLER
Target ID field name : dt.smartscape.service_caller&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately I get nothing in&amp;nbsp;dt.smartscape.service_caller field&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this a good usage of&amp;nbsp;&lt;SPAN&gt;"Smartscape edge" feature?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Can you help me?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Freddy&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jun 2026 13:26:56 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Open-Q-A/EXTRACT-TOPOLOGY-WITH-OPENPIPELINE/m-p/300437#M39146</guid>
      <dc:creator>FredSelvaGen</dc:creator>
      <dc:date>2026-06-08T13:26:56Z</dc:date>
    </item>
    <item>
      <title>Re: EXTRACT TOPOLOGY WITH OPENPIPELINE</title>
      <link>https://community.dynatrace.com/t5/Open-Q-A/EXTRACT-TOPOLOGY-WITH-OPENPIPELINE/m-p/300442#M39148</link>
      <description>&lt;P&gt;Tip for you.&amp;nbsp; The new SmartScape extraction is great, but it doesn't do everything the old Topology Extraction rules did (yet).&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What I do is create something I call "dummy" extensions.&amp;nbsp; They are Dynatrace Extensions without a data source (typically an extension is used to collect information from a SNMP/WMI/SQL/Prometheus/JMX/Python source.&amp;nbsp; But I found you don't&amp;nbsp;&lt;EM&gt;have&amp;nbsp;&lt;/EM&gt;to have a data source defined in your extension.).&lt;/P&gt;&lt;P&gt;What I do with these extensions is define my OpenPipeline route and pipelines (&lt;EM&gt;this includes my processors, smartscape extractions, metric/event extractions, and bucket assignments&lt;/EM&gt;), my classic custom topology extractions, detail screens that place the data on the Infrastructure &amp;amp; Operations application (&lt;EM&gt;this is one of the things you have to have classic custom topology extractions for.&amp;nbsp; Extracting just the Smartscape nodes from your telemetry will not allow those entities to show up in the new Infrastructure &amp;amp; Operations app nor in the classic custom device "screens"&lt;/EM&gt;.), overview dashboards (&lt;EM&gt;both latest dashboard documents and classic dashboards&lt;/EM&gt;), and alert templates.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've basically trained my Cursor (&lt;EM&gt;I use Claude Opus as the model as I found that Auto mode; which relies mostly on Cursor's own Composer model; is more prone to mistakes than Claude&lt;/EM&gt;) by feeding it Dynatrace's "Dynatrace for AI" skill that they share on their public Github repo as well as feeding it all of Dynatrace's Extension docs and a bunch of different official extensions as examples.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It works really well and I can spin up a new working "dummy" extension super quick.&amp;nbsp; It usually takes several iterations where I have to correct it and make changes, but it's still CONSIDERABLY faster than when I built these myself.&amp;nbsp; I've gone from weeks to days.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Having said all that, to address your question directly, Edge is synonymous with the old "Relationships" portion of the classic topology model.&amp;nbsp; Smartscape Nodes are synonymous with the classic "General Types" or entity extraction portion of the old topology model.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, what I'm saying is that an Edge is for connecting two Smartscape Nodes together.&lt;BR /&gt;&lt;BR /&gt;So, my first question would be: Are you extracting your desired entities that you want to relate together as Nodes?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you are already extracting the SERVICE_CART and SERVICE_CALLER entities as Nodes, then you also need to make sure that the data you are using to relate the two together is present in a single span.&amp;nbsp; OpenPipeline processors only look at one record at a time.&amp;nbsp; They are unaware of any other span in a distributed trace.&amp;nbsp; In other words, the way you relate them is by extracting both Node types from a single span.&amp;nbsp; This will put the entity id of both nodes into that span record.&amp;nbsp; Then, the edge simply defines a relationship between those two nodes.&lt;/P&gt;&lt;P&gt;You can't define a relationship between two disparate nodes if the ID values for both don't show up in the same record.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Having said that, Dynatrace already maps services together in a distributed trace.&amp;nbsp; There shouldn't be a need to establish that relationship if you are already seeing the spans for those services in the same trace.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you aren't seeing that already, then I would say check your service detection rules.&amp;nbsp; You might not be detecting the various services properly and that's why you are seeing the issue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Jun 2026 14:59:35 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Open-Q-A/EXTRACT-TOPOLOGY-WITH-OPENPIPELINE/m-p/300442#M39148</guid>
      <dc:creator>36Krazyfists</dc:creator>
      <dc:date>2026-06-08T14:59:35Z</dc:date>
    </item>
  </channel>
</rss>

