index=ABC sourcetype=xyz | stats count by XID| table XID count
XID Count
101 2
102 3
103 4
index=ABC sourcetype=pqr | table MyID Name
MyID Name
101 jhgkjmhgku
102 jhkfythhgkk
103 kiugikyukhy
How to join this to get result.
MyID Name count
101 jhgkjmhgku 2
102 jhkfythhgkk 3
103 kiugikyukhy 4
try this
index=ABC sourcetype=xyz | stats count by XID | appendcols [search index=ABC sourcetype=pqr | table MyID Name] | table MyID Name count
I always try to avoid commands that use subsearches since they don't scale.
You should be able to get the job done with this:
index=ABC (sourcetype=xyz OR sourcetype=pqr)
| eval joinid=coalesce(XID,MyID)
| stats count(XID) AS Count, values(Name) AS Name by joinid
| rename joinid AS MyID
This takes some extra steps for clarity, but the gist is that you are using the "by" field in the stats to perform the "join". The count will be constrained to only events with an XID field, meaning that your sourcetype=pqr
events won't influence your count, even though they are in the resultset.
try this
index=ABC sourcetype=xyz | stats count by XID | appendcols [search index=ABC sourcetype=pqr | table MyID Name] | table MyID Name count
index=ABC sourcetype=xyz | stats count by XID | rename XID as MyID
| join MyID [index=ABC sourcetype=pqr | table MyID Name]
| table MyID Name count
Yup. Or,
index=ABC sourcetype=xyz OR sourcetype=pqr
| eval MyID = coalesce(MyID,XID)
| stats count(eval(sourcetype=xyz)) as count, values(Name) as Name by MyID