Insights is joining HockeyApp! Read the blog post. FAQ

Frequently Asked Questions

PDF for offline use
Related Links:

Let us know how you feel about this

Translation Quality


0/250

The following is a list of questions frequently asked when implementing and using Xamarin Insights:

FAQ

How much will Insights cost?

Insights’ core crash reporting feature is free! If you are interested in advanced features, please see details on pricing here. For Enterprise pricing, please contact us at hello@xamarin.com.

Can I try Insights before I buy?

Yes! Head over to Insights to start your 30 day Enterprise trial.

What happens when I exceed my plan's limit?

We do not charge overages. If you happen to surpass your limit, we'll reach out and find a better package that suits your needs.

Can I use Insights if I don't use the Xamarin Platform?

Currently, Insights is only available for the Xamarin Platform. We will be extending support to other libraries very soon.

Can I grant access to my application to someone that doesn't use Xamarin?

Yes, but they will need to create a free Xamarin account in order to login.

How do I integrate Insights?

Please see our documentation on getting started.

Which platforms are supported?

The Insights client library supports the platforms listed in in the Getting Started guide.

How can I find out if the system is down?

Check our status page.

Where can I get support?

The Insights Forum is the best place to ask and get your questions answered. If you have Business or Enterprise plan, email support is available.

Where can I review the terms of service?

Here are our terms of service.

Can Insights be used at the same time as other crash reporting tools (ex. HockeyApp, Raygun, Crashlytics)?

No. Only one library can catch crash reports at a time. Either Insights will block HockeyApp or HockeyApp will block Insights.

Is network traffic encrypted?

Yes, via TLS.

How and when is data sent from my app to the Insight's servers?

As of version 1.10.0, the Insights client will send data on cellular and wifi by default. In older client libraries, the default is wifi only.

The Insights client will batch up data and send it out as a bulk transmission.

In the case of being unable to send data out to the server, all data is journaled to disk so that it persists across restarts.

How much network traffic is used?

The amount of data sent from the client library to our servers can vary widely. Events and errors are often bundled together. In our testing, uncompressed Track events typically use 1 to 3 KB, and iOS crash blobs are around 100 KB. On platforms that support it, we compress these bundles before sending them. The amount of compression will vary based on content. For instance, Track events are text and compress well, while crash blobs do not.

How big is the client library?

It's less then 500KB on iOS, and less then 100KB on everything else.

Where does Insights keep its data?

Insights keeps data in a cloud service which is hosted on the east coast of the United States. We continue to examine international host requirements; however, there is no timeline at this juncture.

Does Insights collect my users’ personal data?

If a developer only uses Insights.Initialize() in their application, personal identifiable information (PII) is not intentionally collected by Insights. All users will be anonymized and will be "Guests" on the dashboard and in our database. A developer must invoke Insights.Identify() in order to pass this information.

One caveat to be aware of is accidentally leaking PII in your exceptions. Built-in runtime exceptions do not have PII by default, but if you're throwing your own exceptions or adding extra information to them, it is up to you not to include PII in them. Insights may unintentionally collect PII if it leaks into an exception.

The list below shows some of the possible scenarios in which PII could be gathered unintentionally, and as a developer it is important to be mindful of these. Note that this is not an extensive list, it is only provided to explain some possible scenarios:

  • System.IO.DirectoryNotFoundException – Could not find a part of the path 'C:\Users\CUSTOMER.NAME\packages'.
  • Java.Lang.RuntimeException – no such column: allow_write (code 1): , while compiling: SELECT id, name FROM users WHERE (email = 'CUSTOMER@DOMAIN.COM')
  • Your.App.CustomException – CUSTOMER@DOMAIN.COM with social security number 111-11-1111 not found.

Does Insights collect my users’ location?

Every time a report is collected from the Client and pushed to the Insights servers, we read the Client's IP address as part of the network request. This IP address is then translated to a location (no more granular than City and Country) and the IP address is then forgotten and is not stored on our servers.

Does Insights have any certifications, such as HIPAA, SOC 2, etcetera?

No, and we have no plans to at this time.

Should I use the same API key for iOS and Android?

This is up to you. If you want to see the User and Session data combined then the only option is to use the same API key for both. In the future we'll likely be adding filters so you will be able to view Issues and Users by platform easier.

Does Insights collect data in all environments: Debug, Release mode, simulator, App Store, etcetera?

Yes.

Can I automate the uploading of dSYM files?

Yes, you can post your dSYM using a script, for example with curl you'd just do:

curl -F "dsym=YOUR-APPS-DSYM.zip;type=application/zip" https://xaapi.xamarin.com/api/dsym?apikey=[yourApiKey]

Can I export my data?

Not at this time, but it's on our near-term roadmap.

Do I need to call Insights.Report in try/catch blocks?

Yes. Insights automatically reports unhandled exceptions If you catch an exception with a try/catch that would be considered handled, you need to either call Insights.Report or re-throw the exception

Refer to the Logging Dataguide for more information.

Why don't I have line numbers in my stack trace?

In .NET you need to have the correct debug information (PDB files) alongside your dlls. Currently on iOS, it's not possible to package them, but we're working on a solution to upload them similar to how dSYMs are sent to us. On other platforms, you can bundle the .pdb files to get line numbers. There are also some known issues with getting line numbers when using async. We'll update the FAQ as we make progress on this.

Although not as useful as a proper stack trace with line numbers, you can use the following snippet to collect some line number and file name information yourself by making a simple wrapper for Insights.Report. This uses built-in .NET Callerattributes to tell you where Report was called.

public static void Report (Exception exp, 
                        ReportSeverity severity= ReportSeverity.Error,          [CallerMemberName] string memberName = "",              [CallerFilePath] string sourceFilePath = "",            [CallerLineNumber] int sourceLineNumber = 0)
{  Insights.Report (exp, new Dictionary<string,object> {        {"Method",memberName},      
    {"File Name",sourceFilePath},      
    {"Line Number",sourceLineNumber},  
    }, severity);
}

Why don’t I see an error that occurred on my simulator?

There are two reasons as to why this might happen:

  • If you are debugging on the simulator exceptions will be caught by the IDE and therefore never reached the Insights client library.

  • If the exception wasn't caught by the IDE and you still can't see activity there might be a connection problem. Check that you can reach https://insights.xamarin.com via the simulator, and that there are now warnings or errors from the Insights client library in your application logs.

What Android API Levels do you support?

The Insights client library is best supported on API level 14 and above, It does, however, work on lower API levels but will be lacking session information.

What is the minimum iOS version you support?

Insights is only supported on iOS 7 and above.

Are User Traits tied to an Id forever, or do I need to send the same traits over and over when Insights.Identify is called?

They are saved. You only need to provide User Traits for the User Id once.

You should however call Insights.Identify("YourUsersUniqueId") whenever a user starts using your application.

Is the avatar trait a URL?

Yes.

Do you track region/language settings?

Yes.

On iOS, does Insights use the identifierForAdvertising (IDFA) ID?

No.

What events can webhooks be used for?

Currently webhooks are only triggered when a new type of Issue occurs. We will be adding more webhooks in the future.

Do you have an example webhook?

Yes, this is a sample request body:

{  
    "type": "NewIssue",
    "timestamp": 1422993235, 
    "uri":"https://insights.xamarin.com/app/<YOUR-APP-ID>/issues/<NEW-ISSUE-ID>",  
    "properties": { 
         "source": "<YOUR-APP-NAME>", 
          "message": "Oh no. Bad stuff happened.",    
          "exceptionType": "System.NotSupportedException"  
      } 
}

You can test our webhook using Runscope.

I'm running a proxy in my app, is there a URL I can use to whitelist insights data?

Yes. The URL to whitelist is: https://xaapi.xamarin.com.

Use port 443 (https)

Do I need a privacy policy?

Xamarin Insights encourages developers to create their own policy that suits their users best; we give no formal recommendation on how to construct a privacy policy. For further reading, please see section 23.2 of our Cloud Services Agreement.

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.