Syntax
Java
NewRelic.startInteraction(string $interactionName)Kotlin
NewRelic.startInteraction(actionName: String)Description
Create an interaction to instrument a method in your Android app code.
To name an interaction that already exists and is already being tracked, see setInteractionName().
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Return values
Returns an interaction ID number which can be used for ending the interaction at a certain point.
Example
Here's an example of starting to track an interaction named RefreshContacts:
Java
public class MainActivity extends Activity { ... @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_refresh: NewRelic.startInteraction("RefreshContacts"); ... return true; default: return super.onOptionsItemSelected(item); } } ...}Kotlin
class MainActivity : AppCompatActivity() {
... var client: OkHttpClient = OkHttpClient();
binding.fab.setOnClickListener { view ->
val interActionId = NewRelic.startInteraction("Getting Data From Server")
lifecycleScope.launch(Dispatchers.IO) { val result = getRequest() NewRelic.endInteraction(interActionId) } } } ...Syntax
Objective-c
+ (NSString*) startInteractionWithName:(NSString*)interactionName;Swift
NewRelic.startInteraction(string: "myInteractionName")Description
This method will start an interaction trace using interactionName as the name. The interaction will record all instrumented methods until a timeout occurs or stopCurrentInteraction is called.
To name an interaction that already exists and is already being tracked, see setInteractionName().
Tip
If you use these methods, the instrumented interactions will not show up on the Interactions page, but they can be still found with a NRQL query, such as:
SELECT name FROM Mobile SINCE 7 DAYS AGOParameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Return values
If startInteractionWithName is called, the return value is an interactionIdentifier that must be passed to stopCurrentInteraction . But it's not required to call stopCurrentInteraction after calling start because startInteractionWithName will eventually complete intelligently.
Examples
Objective-C
NSString *identifier = [NewRelic startInteractionWithName: @"myInteractionName"];[NewRelic stopCurrentInteraction: identifier];Swift
let identifier = NewRelic.startInteraction(withName: "myInteractionName")NewRelic.stopCurrentInteraction(identifier)Syntax
startInteraction(options: { value: string; }) => Promise<{ value: string; }>Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
const badApiLoad = async () => { const id = await NewRelicCapacitorPlugin.startInteraction({ value: 'StartLoadBadApiCall' }); console.log(id); const url = 'https://fakewebsite.com/moviessssssssss.json'; fetch(url) .then((response) => response.json()) .then((responseJson) => { console.log(responseJson); NewRelicCapacitorPlugin.endInteraction({ interactionId: id.value }); }) .catch((error) => { NewRelicCapacitorPlugin.endInteraction({ interactionId: id.value }); console.error(error); });};Syntax
startInteraction(interactionName: string, cb?: function): Promise<InteractionId>;Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
const badApiLoad = async () => { const interactionId = await NewRelic.startInteraction('StartLoadBadApiCall'); console.log(interactionId); const url = 'https://cordova.apache.org/moviessssssssss.json'; fetch(url) .then((response) => response.json()) .then((responseJson) => { console.log(responseJson); NewRelic.endInteraction(interactionId); }) .catch((error) => { NewRelic.endInteraction(interactionId); console.error(error); });}Syntax
StartInteraction(string interactionName): string;Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
HttpClient myClient = new HttpClient(CrossNewRelic.Current.GetHttpMessageHandler());
string interactionId = CrossNewRelic.Current.StartInteraction("Getting data from service");
var response = await myClient.GetAsync(new Uri("https://jsonplaceholder.typicode.com/todos/1"));if (response.IsSuccessStatusCode){ var content = await response.Content.ReadAsStringAsync();} else{ Console.WriteLine("Unsuccessful response code");}
CrossNewRelic.Current.EndInteraction(interactionId);Syntax
startInteraction(String actionName);Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
var id = await NewrelicMobile.instance.startInteraction("Getting Data from Service");
try { var dio = Dio(); var response = await dio.get( 'https://reqres.in/api/users?delay=15'); print(response); NewrelicMobile.instance.endInteraction(id); Timeline.finishSync();} catch (e) { print(e);}Syntax
startInteraction(interactionName: string): Promise<InteractionId>;Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
const badApiLoad = async () => { const interactionId = await NewRelic.startInteraction('StartLoadBadApiCall'); console.log(interactionId); const url = 'https://facebook.github.io/react-native/moviessssssssss.json'; fetch(url) .then((response) => response.json()) .then((responseJson) => { console.log(responseJson); NewRelic.endInteraction(interactionId); }) .catch((error) => { NewRelic.endInteraction(interactionId); console.error(error); });;};Syntax
StartInteractionWithName(string interactionName): string;Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
string interActionId = NewRelicAgent.StartInteractionWithName("Unity InterAction Example");
for(int i = 0; i < 4; i++){ Thread.Sleep(1000);}
NewRelicAgent.StopCurrentInteraction(interActionId);Syntax
startInterAction(FString interActionName):FString;Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
#include "NewRelicBPLibrary.h"
FString id = UNewRelicBPLibrary::startInterAction("test Unreal InterAction");
FPlatformProcess::Sleep(6.0);
UNewRelicBPLibrary::endInterAction(id);
Syntax
StartInteraction(string interactionName): string;Description
Track a method as an interaction.
Parameters
Parameter | Type | Description |
|---|---|---|
|
| Required. The name you want to give to the interaction. |
Example
HttpClient myClient = new HttpClient(CrossNewRelicClient.Current.GetHttpMessageHandler());
string interactionId = CrossNewRelicClient.Current.StartInteraction("Getting data from service");
var response = await myClient.GetAsync(new Uri("https://jsonplaceholder.typicode.com/todos/1"));if (response.IsSuccessStatusCode){ var content = await response.Content.ReadAsStringAsync();} else{ Console.WriteLine("Unsuccessful response code");}
CrossNewRelicClient.Current.EndInteraction(interactionId);