As I understand it, your example from A to C through B (A -> B -> C)? Are A, B, and C always unique? I'm presuming there's something to build the transaction on... B if unique, B in combination with _time, or some transaction identifier...
sourcetype=foo OR sourcetype=bar
| eval int=if(sourcetype==foo,to,from)
| eval f=case(sourcetype==foo,from)
| eval t=case(sourcetype==bar,to)
| transaction int
| fields f,int,t
| stats count by f,t
If I missed the mark post some more specific examples and I or someone else from the community may be able to give better guidance.
... View more