Check Telemetry
Checks can be configured to send messages to a specified PreEmptive Analytics Endpoint when they detect invalid application states. This is called Check Telemetry.
Configuration
Provided you have configured Checks, Check Telemetry can be used alongside other features of Instrumentation or by itself.
In both cases, to enable Check Telemetry, enable one or more of the following injection options:
- For Tamper Checks, enable Send tamper check messages.
- For Debugging Checks, enable Send debug check messages.
- For Shelf Life Checks, enable Send shelf life notification messages.
Note that Checks in general will only be injected if Enable injection is enabled, so this setting must also be enabled for Check Telemetry messages to be transmitted.
Caution: Do not put the Check attributes on the same method containing the
SetupAttribute
. Methods with these attributes must be executed after the method containing the Setup Attribute.
With Instrumentation Telemetry
Assuming you have configured your application to track sessions, Check Telemetry messages will be sent as part of those sessions. Because these messages indicate unauthorized use of the application, they will be transmitted even if the user opts out of telemetry.
Without Instrumentation Telemetry
Check Telemetry can be used without transmitting any other telemetry. To do this, disable the Send application analytics messages injection option.
However, Check Telemetry still requires the injected telemetry engine to be set up, so that it knows where to transmit the messages, and what Company and Application information to include in the transmission. Therefore, use of the following instrumentation attributes is still required for Check Telemetry, even though the code they inject will not transmit these attributes' corresponding messages:
- A
SetupAttribute
on a method indicative of your application starting.- At runtime, this method must be called before Checks can send telemetry messages.
- A
BusinessAttribute
and anApplicationAttribute
on the assembly containing theSetupAttribute
.
Supported Application Types
Check Telemetry is supported in an assembly if:
- Instrumentation is supported for that assembly, and
- The Check is supported for that assembly:
Messages
Each type of Check generates a different type of message.
Tamper
Generated when a method annotated with TamperCheckAttribute
starts and the injected Tamper Check detects that the assembly has been modified from its original form.
Includes the following data:
- Session ID
- Timestamp
Debugger Detected (Fault)
Generated when a method annotated with DebuggingCheckAttribute
starts and the injected Debugging Check detects that a debugger is attached to the current process.
This is actually a fault message with a fixed exception type (com.preemptive.DebuggingCheck
).
Includes the following data:
- Session ID
- Timestamp
Application Expiry
Generated when a method annotated with ShelfLifeCheckAttribute
starts and the injected Shelf Life Check detects that the application is being used after the Check's expiration date.
Includes the following data:
- Session ID
- Timestamp
- Expiration Date
- Shelf Life Activation Key ID