And if you don't have labels, adding them wouldn't break existing code.

For example you have this routine:

TEST
    write 1
    write 2
    write 3
    quit

It, when called would output

>do ^TEST
123

If you then add a label somewhere:

TEST
    write 1

MYLABEL
    write 2
    write 3
    quit

The routine would wok the same on previous calls:

>do ^TEST
123

But you'll also be able to call only the label:

>do MYLABEL^TEST
23

There's no default function to do it, but you can easily develop your own custom function. There's $IsValidNum ObjectScript function, which could be used to check that variable is a number. So something like this should work:

/// Functions to use in rule definitions.
Class Custom.Functions Extends Ens.Rule.FunctionSet
{

/// Returns 1 if a string is a number, 0 otherwise
ClassMethod IsValidNumber(string As %String) As %Boolean [ CodeMode = expression, Final ]
{
$ISVALIDNUM(string)
}

}

SendRequestAsync is available in all Ensemble Hosts (Services, Operations, Processes).

For Operations and Services the signature is:

Method SendRequestAsync(pTargetDispatchName As %String, pRequest As %Library.Persistent, pDescription As %String = "") As %Status

And for Processes the signature is:

Method SendRequestAsync(pTargetDispatchName As %String, pRequest As Request, pResponseRequired As %Boolean = 1, pCompletionKey As %String = "", pDescription As %String = "") As %Status

In the future please don't combine separate questions into one post.

I am looking for a way to detimerine if a certain namespace is ensemble enabled.

To check that some <namespace> has Ensemble enabled call:

write ##class(%EnsembleMgr).IsEnsembleNamespace(<namespace>)

where <namespace> defaults to current namespace.

Log some information to the console log file with a certain error level.

%SYS.System class provides the WriteToConsoleLog method, which you can use to write to the cconsole.log file.