cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

for the expert, DT_CLUSTER_ID vs HOSTGROUPS

henk_stobbe
DynaMight Champion
DynaMight Champion

Hello,

Can the env DT_CLUSTER_ID combine trwo processes in one. PG if they are in different HOSTGROUPS?

or

Can I split up a PG running on one host by giving the processes different DT_CLUSTER_ID’s?

and

is DT_NODE_ID not obsolete and can be replaced by any other metadata or is it here a extra function I am overlooking?


KR Henk

13 REPLIES 13

Julius_Loman
DynaMight Guru
DynaMight Guru

Hello Henk,

Can the env DT_CLUSTER_ID combine trwo processes in one. PG if they are in different HOSTGROUPS?

No. Host group works as a "splitter" with higher priority.

Can I split up a PG running on one host by giving the processes different DT_CLUSTER_ID’s?

Yes, you can. This is exactly what DT_CLUSTER_ID and DT_NODE_ID are for (besides process group detection rules). Depending on what you need to split. DT_CLUSTER_ID allows you to set the process group name and DT_NODE_ID is the node identifier within a process group. This is typically useful if you have more instances of a process on the same host


is DT_NODE_ID not obsolete and can be replaced by any other metadata or is it here a extra function I am overlooking?

It's not obsolete. It allows you to "split" process group instances within a process group on a single host and also identify them by a common name. For you have a process group APPX and 4 instances. Two are running on server1 two on server2. Without DT_NODE_ID you would see one process group and a single process group instance on each server as they would have been glued together. With DT_NODE_ID you can have on server1:

  • APPX (instance1)
  • APPX (instance2)

and on server2:

  • APPX (instance3)
  • APPX (instance4)

Depending on your case, you can also use process group detection rules to accomplish this.

Cheers
Julius

Certified Dynatrace Master | TEMPEST a.s., Slovakia, Dynatrace Master Partner

Ran into this most helpful topic, looking at a similar case. Multiple instances of an executable on multiple hosts.

Am I right assuming that with DT_CLUSTER_ID you set the process group id (e.g. "APPX" in your example), and with DT_NODE_ID you set somehow the specific unique occurrence of this process (group) (e.g, "instance4" in your example)?

Thus for DT_NODE_ID you have to come up with an unique way to define/fill this property.
So if I am right, this could be something you script, or anything you can pick up from the environment, a command line paramater, the user it's started with etc.
The PID of (EXE) process would be interesting, but since that probably has not started yet, it would be hard to capture. 

Doc reference: Customize the structure of process groups | Dynatrace Docs

The doc reports the limitation "Process-group detection rules only affect processes that can be deep monitored by OneAgent" 



Correct, this is only for deep monitored processes. For others there is is the declarative process grouping, available from 1.217. 

 

DT_NODE_ID is typically an node identifier. PID is not a good idea to use for DT_NODE_ID. Use the identifier you have such as instance id within your cluster.

Certified Dynatrace Master | TEMPEST a.s., Slovakia, Dynatrace Master Partner

That is a pitty, because also with non-deep monitored processes it can be most useful to determine which instance is running.

r_weber
DynaMight Champion
DynaMight Champion

Hi  @henk_stobbe ,

you might have seen the rather new "declarative" processgrouping feature in Dynatrace now.
This might replace the use of these environment variables for some cases, especially for processes without deep injection.

kr,

Reinhard

Certified Dynatrace Master, Dynatrace Partner - 360Performance.net

I have tried this on an executable (.EXE) without deep monitoring, and have had no result yet. So I am open to good pointers and examples.

Hi @fstekelenburg ,

interesting. I didn't have any issues with that, though I have some additional feature request for placeholders.

In my case I used the declarative processgrouping to split up several .exe processes and their services that would have ended up all in one service and processgroup.

 

There were multiple instances of the same binary, with different purposes. The purpose is "identified" by a commandline argument (e.g. OrderExport).

 

Using the new settings API I can push e.g. such a definition for the declarative process grouping.

 

    {
        "schemaId": "builtin:declarativegrouping",
        "objectId": "longid here",
        "schemaVersion": "1.0.11",
        "scope": "environment",
        "summary": "bridgeserver",
        "value": {
            "detection": [
                {
                    "id": "OrderExport",
                    "processGroupName": "bridgeserver",
                    "rules": [
                        {
                            "condition": "$contains(OrderExport)",
                            "property": "commandLine"
                        }
                    ]
                }
            ],
            "enabled": true,
            "name": "bridgeserver"
        }
    }

 

This then will "split out" the process with matching criteria into a separate processgroup and also it's services.

Certified Dynatrace Master, Dynatrace Partner - 360Performance.net

Thanks for the reply and insight. Extra examples are always helpful.
I actually managed to get it going, based on command line parameter part I have now a situation that separate types of startup are split up in PGs.

Additional question, are you able to see these process groups under Technologies and processes? In the Technology overview I can't see them. Even if I try to filter on the Technology (it sees my new entry as filterable type). Neither if I tagged the PG.

 

 

@fstekelenburg the Technologies and processes show only Deep monitored processes and custom technologies using extensions. I also don't see the processes added using declarative process grouping.

Certified Dynatrace Master | TEMPEST a.s., Slovakia, Dynatrace Master Partner

Hi Julius, I learned that this will be available probably in the next 6 months or so.

https://community.dynatrace.com/t5/Dynatrace-Open-Q-A/Declarative-process-grouping-should-they-show-...

 

A bit of inconsistent, but I can see the "Technology" under services, but not under Technologies and Processes:

 

r_weber_0-1646132156823.png

 

Certified Dynatrace Master, Dynatrace Partner - 360Performance.net

Yep, but you have (custom) services for this proces. The process groups can only be found by Search or on host level process details.  
Oh, and I have to add, through Settings > Monitoring > Monitoring overview
where you also end when hitting the button Monitoring Settings above Applications (Web, Frontend) 🙂

Agreed. It's inconsistent - or more likely not finished yet.

Certified Dynatrace Master | TEMPEST a.s., Slovakia, Dynatrace Master Partner