<?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 Configuring Java agent for multiple replicas or instances in AppD Archive</title>
    <link>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724986#M1962</link>
    <description>&lt;P&gt;We have a kubernetes cluster and each application is running as multiple replicas as in multiple pods. What's the best way to track the Java application from multiple replicas?&amp;nbsp; Is it right to treat each replica as a node if yes, this would be an issue when autoscaling happens as the new replica in upscaling would be assigned a node which is not yet created in AppD console. Or do we have any other option on AppD console to capture separate metrics for both the replicas with or without the same agent.&lt;/P&gt;</description>
    <pubDate>Fri, 23 Feb 2024 05:30:06 GMT</pubDate>
    <dc:creator>Akshay_Nimbal</dc:creator>
    <dc:date>2024-02-23T05:30:06Z</dc:date>
    <item>
      <title>Configuring Java agent for multiple replicas or instances</title>
      <link>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724986#M1962</link>
      <description>&lt;P&gt;We have a kubernetes cluster and each application is running as multiple replicas as in multiple pods. What's the best way to track the Java application from multiple replicas?&amp;nbsp; Is it right to treat each replica as a node if yes, this would be an issue when autoscaling happens as the new replica in upscaling would be assigned a node which is not yet created in AppD console. Or do we have any other option on AppD console to capture separate metrics for both the replicas with or without the same agent.&lt;/P&gt;</description>
      <pubDate>Fri, 23 Feb 2024 05:30:06 GMT</pubDate>
      <guid>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724986#M1962</guid>
      <dc:creator>Akshay_Nimbal</dc:creator>
      <dc:date>2024-02-23T05:30:06Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring Java agent for multiple replicas or instances</title>
      <link>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724987#M1963</link>
      <description>&lt;P&gt;Hi Akshay,&lt;BR /&gt;&lt;BR /&gt;yes you are right, each replica would be treated as a node. &lt;BR /&gt;&lt;BR /&gt;We'd recommend deploying the cluster agent and leveraging it to auto-deploy the java agent and instrument your java application:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://docs.appdynamics.com/appd/24.x/24.2/en/infrastructure-visibility/monitor-kubernetes-with-the-cluster-agent/auto-instrument-applications-with-the-cluster-agent" target="_blank" rel="nofollow noopener noreferrer"&gt;https://docs.appdynamics.com/appd/24.x/24.2/en/infrastructure-visibility/monitor-kubernetes-with-the-cluster-agent/auto-instrument-applications-with-the-cluster-agent&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;There are a few steps in the link above related to the tiers and nodes naming and management:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Pre-requisite:
&lt;UL&gt;
&lt;LI&gt;Ensure that you have specified the app, the tier, and the node name tuple to be unique across all the Kubernetes instances. If the name is not unique, the nodes may not report properly.&amp;nbsp;This is applicable to those agents on which app, tier, and node uniqueness is required such as Java and Node.js Agents.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;At the "Enable Auto-Instrumentation for the Cluster Agent" step:
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Remove any deleted pods from the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Tiers &amp;amp; Nodes&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Controller Dashboard. Then, re-create the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;cluster-agent-secret&lt;/CODE&gt;&amp;nbsp;that was created in&amp;nbsp;&lt;A class="conf-macro output-inline" href="https://docs.appdynamics.com/appd/24.x/24.2/en/infrastructure-visibility/monitor-kubernetes-with-the-cluster-agent/install-the-cluster-agent" data-macro-name="sp-plaintextbody-link" data-hasbody="true" target="_blank" rel="nofollow noopener noreferrer"&gt;Install the Cluster Agent&lt;/A&gt;&amp;nbsp;to include&amp;nbsp;&lt;CODE&gt;api-user&lt;/CODE&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="code-macro conf-macro output-block" data-hasbody="true" data-macro-name="sp-macrooverride-plaintextbody-block"&gt;
&lt;DIV class="code-toolbar"&gt;&lt;PRE class="lia-code-sample language-none"&gt;&lt;CODE&gt;kubectl -n appdynamics delete secret cluster-agent-secret
kubectl -n appdynamics create secret generic cluster-agent-secret --from-literal=controller-key=&amp;lt;access-key&amp;gt; --from-literal=api-user="&amp;lt;username&amp;gt;@&amp;lt;customer&amp;gt;:&amp;lt;password&amp;gt;"&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="toolbar"&gt;
&lt;DIV class="toolbar-item"&gt;&lt;BUTTON class="copy-to-clipboard-button" type="button" data-copy-state="copy"&gt;&lt;SPAN&gt;Copy&lt;/SPAN&gt;&lt;/BUTTON&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="code-macro__language "&gt;&lt;SPAN&gt;CODE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="panel-macro panel-macros--info conf-macro output-block" data-hasbody="true" data-macro-name="sp-macrooverride-richtextbody-block"&gt;
&lt;DIV class="grid-x"&gt;
&lt;DIV class="cell auto align-self-middle panel-macros--info__content"&gt;
&lt;P&gt;Set the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;api-user&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;value to a local user from the Controller with the Server Monitoring Administrator role. Cluster Agent uses the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;api-user&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to mark the associated node in the Controller as historical on pod deletion.&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;AppDynamics Tier Name Strategies
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;The Controller's&amp;nbsp;&lt;STRONG&gt;Application Dashboard &amp;gt; Tiers and Nodes&lt;/STRONG&gt;&amp;nbsp;provides two tier name strategies. Select a strategy by assigning the&amp;nbsp;&lt;CODE&gt;tierNameStrategy&lt;/CODE&gt;&amp;nbsp;property to one of these values:&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="conf-macro output-inline" href="https://docs.appdynamics.com/appd/24.x/24.2/en/infrastructure-visibility/monitor-kubernetes-with-the-cluster-agent/auto-instrument-applications-with-the-cluster-agent#AutoInstrumentApplicationswiththeClusterAgent-manual" data-macro-name="sp-nobody-link" data-hasbody="false" target="_blank" rel="nofollow noopener noreferrer"&gt;manual&lt;/A&gt;:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Use the&amp;nbsp;&amp;nbsp;&lt;CODE&gt;tierName&lt;/CODE&gt;&amp;nbsp;parameters in the&amp;nbsp;&lt;CODE&gt;cluster-agent.yaml&lt;/CODE&gt;&amp;nbsp;file to set the tier name.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="conf-macro output-inline" href="https://docs.appdynamics.com/appd/24.x/24.2/en/infrastructure-visibility/monitor-kubernetes-with-the-cluster-agent/auto-instrument-applications-with-the-cluster-agent#AutoInstrumentApplicationswiththeClusterAgent-label" data-macro-name="sp-nobody-link" data-hasbody="false" target="_blank" rel="nofollow noopener noreferrer"&gt;label&lt;/A&gt;: Use a label from the workload's spec as the tier name&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Hope this helps, let us know please if you need further information.&lt;/P&gt;
&lt;H2 class="p1" id="toc-hId--1329561262"&gt;&amp;nbsp;&lt;/H2&gt;</description>
      <pubDate>Mon, 04 Mar 2024 16:41:08 GMT</pubDate>
      <guid>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724987#M1963</guid>
      <dc:creator>Paula_Semaan1</dc:creator>
      <dc:date>2024-03-04T16:41:08Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring Java agent for multiple replicas or instances</title>
      <link>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724988#M1964</link>
      <description>&lt;P&gt;Thank you&amp;nbsp;&lt;A href="https://community.appdynamics.com/t5/user/viewprofilepage/user-id/142609"&gt;@Paula.Semaan&lt;/A&gt;&amp;nbsp;for the response.&amp;nbsp;&lt;/P&gt;&lt;P&gt;After some more digging, we went with&amp;nbsp;&lt;SPAN&gt;-&lt;/SPAN&gt;Dappdynamics.agent.reuse.nodeName=true -Dappdynamics.agent.reuse.nodeName.prefix=${HOSTNAME}&lt;/P&gt;&lt;P&gt;So, this way we could dynamically register new pods/instances/replicas coming in our Kubernetes cluster and this node would be registered in the AppD console as the pod name as shown below.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AkshayNimbal_0-1709617107711.png" style="width: 400px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image.png"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/36565i7B093359672BD3DC/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;So this handled upscaling/downscaling and updating in the console.&lt;/P&gt;&lt;P&gt;1. Do you see any downsides in this as we only wanted to use the Java agent?&lt;/P&gt;&lt;P&gt;2. We have a multi-region deployment of our applications, can you suggest any better organization structure for our apps and nodes in this case? We were thinking of using AppName -&amp;gt; Tier as region ( us-east-1 is one tier, eu-west-1 is another tier, etc ) -&amp;gt; Nodes as Kubernetes pods under that tier/region.&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Tue, 05 Mar 2024 05:42:31 GMT</pubDate>
      <guid>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724988#M1964</guid>
      <dc:creator>Akshay_Nimbal</dc:creator>
      <dc:date>2024-03-05T05:42:31Z</dc:date>
    </item>
    <item>
      <title>Re: Configuring Java agent for multiple replicas or instances</title>
      <link>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724989#M1965</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;A href="https://community.appdynamics.com/t5/user/viewprofilepage/user-id/167945"&gt;@Akshay.Nimbal&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;yes, this is a great usage of the properties&amp;nbsp;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;Dappdynamics.agent.reuse.nodeName=true -Dappdynamics.agent.reuse.nodeName.prefix=${HOSTNAME}, because they'll ensure a continuity of metric reporting for a node when the pod changes.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;1. No I don't see any downside for this solution, it's a very good one&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;2. In theory, we'd recommend naming tiers based on the business purpose / service they fulfil. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For example in this picture, a Checkout business transaction:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Is being handled at the start by the tier "Ecommerce-services" (which has 40 nodes) which aim is to be the first level of the request processing and to commit the transaction in the database&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Then the Inventory Services tier (with 4 nodes), which aim is to check the availability of the item, update the counter accordingly, etc,&amp;nbsp; is called in order to make an API call to the main supplier&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Then the order is put in a queue that is processed by the "Order Processing Services" tier which aim is to process orders being placed, and that makes a call to another remote service.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="PaulaSemaan_0-1709642903719.png" style="width: 400px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image.png"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/36570i468C60E930A80C6F/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Splitting the tiers by region, even though they have common business purposes across these regions, would lead to different business transactions for "Checkout" for example, each originating from a regional tier, for example:&lt;BR /&gt;. A Checkout transaction (with its own metrics and snapshots) originating from "&lt;SPAN&gt;us-east-1"&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;. Another Checkout transaction (with its own metrics and snapshots) originating from&amp;nbsp;eu-west-1&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;etc.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;The downsides are that:&lt;/P&gt;
&lt;P&gt;1. You wouldn't be able to aggregate automatically the metrics of the business transaction and the tiers across the different regions.&lt;/P&gt;
&lt;P&gt;2. This could increase very easily the number of business transactions close to the default limit of 200, which is not recommended.&lt;/P&gt;
&lt;P&gt;Here are the best practices around an application organisation in AppDynamics (application name, tiers names, nodes names, etc):&lt;BR /&gt;&lt;A href="https://docs.appdynamics.com/appd/24.x/latest/en/application-monitoring/overview-of-application-monitoring" target="_blank" rel="nofollow noopener noreferrer"&gt;https://docs.appdynamics.com/appd/24.x/latest/en/application-monitoring/overview-of-application-monitoring&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Here is a great article on how to define business transactions (which is very related to the choice of tiers organisation):&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.appdynamics.com/blog/product/how-to-identify-impactful-business-transactions-in-appdynamics" target="_blank" rel="nofollow noopener noreferrer"&gt;https://www.appdynamics.com/blog/product/how-to-identify-impactful-business-transactions-in-appdynamics&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Happy to discuss further over a call!&lt;/P&gt;</description>
      <pubDate>Tue, 05 Mar 2024 13:12:16 GMT</pubDate>
      <guid>https://community.splunk.com/t5/AppD-Archive/Configuring-Java-agent-for-multiple-replicas-or-instances/m-p/724989#M1965</guid>
      <dc:creator>Paula_Semaan1</dc:creator>
      <dc:date>2024-03-05T13:12:16Z</dc:date>
    </item>
  </channel>
</rss>

