Customize Network Monitoring
Whitelisting hosts
Using the HTTPMonitoring key within FnObserve key Info.plist file, hosts can be whitelisted. Once set only HTTP(s) calls made to the whitelisted hosts will be tracked by the Framework.
Info.plist:
<key>FnObserve</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>your-host.com</key>
<dict/>
<key>another-host.com</key>
<dict/>
</dict>
</dict>
Please make sure that only one FnObserve key exists in your info.plist file.
Dynamic Path Component
When API call issues are reported, different urls are created as separate ticket.
This can cause large number of tickets generated for the same API incase the url contains an id or any other dynamic path component.
Use PathPatterns key in info.plist to specify the endpoints that contains dynamic path component. Wrap the corresponding dynamic path component or id inside '{}'.
Info.plist:
<key>FnObserve</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>*</key>
<dict>
<key>PathPatterns</key>
<dict>
<key>/users/{userId}</key>
<dict/>
<key>/posts/{id}</key>
<dict/>
</dict>
</dict>
</dict>
</dict>
Please make sure that only one FnObserve key exists in your info.plist file.
Here call to any host (as * is used in HTTPMonitoring) that matches each specified pattern will be grouped into a single ticket for each PathPattern.
Privacy
Each network issue reports are tagged with corresponding request-response headers, request-response body and associated parameters.
Finotes provides a global and easy mechanism to mask sensitive header fields using MaskedHeaders in info.plist file as shown in code snippet. You may provide 1 or more header keys in the 'MaskedHeaders' field.
Info.plist:
<key>FnObserve</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>*</key>
<dict>
<key>PathPatterns</key>
<dict>
<key>*</key>
<dict>
<key>MaskedHeaders</key>
<array>
<string>X-Key</string>
</array>
</dict>
<key>/users</key>
<dict>
<key>MaskedHeaders</key>
<array>
<string>Accept</string>
<string>X-Key</string>
</array>
</dict>
</dict>
</dict>
</dict>
</dict>
Please make sure that only one FnObserve key exists in your info.plist file.
Use case:
Here X-Key header field will be filtered from calls to all hosts and endpoints before reporting an issue to Finotes dashboard while Accept header filed will be filtered from calls to all hosts but from only the endpoint that matches the given PathPattern.
Setting Host or Endpoint timeout
Developers can set timeout using the NetworkTimeout key.
The timeout value should be in milliseconds. Once the value is set if any of the HTTP(s) calls to the host with endpoint takes more than the set amount of time, an issue report will be raised.
Info.plist:
<key>FnObserve</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>*</key>
<dict>
<key>PathPatterns</key>
<dict>
<key>*</key>
<dict>
<key>NetworkTimeout</key>
<integer>4000</integer>
</dict>
<key>/fileUpload</key>
<dict>
<key>NetworkTimeout</key>
<integer>50000</integer>
</dict>
</dict>
</dict>
</dict>
</dict>
Please make sure that only one FnObserve key exists in your info.plist file.