Want this feature implemented, too? Please upvote by clicking Thumbs up!
(Posts as a reply won't be published in this feature request thread. Read Me!)
User story
As a PRTG user, I want to be able to export Sensor and Device definitions via the User Interface and / or API as XML or JSON or optionally either format. OPTIONAL AS PART OF FEATURE REQUEST: Support Import via definition.
Details of user story
Below I've included an example of what a Ping sensor definition might look like (sensor definition would change based on it's type) and a Device definition. Both examples have been built in XML.
NOTE: Where I've included "..." that means that I haven't fully built out that node and additional elements would go there. For time sake I didn't bother building out everything. Just wanted to provide samples.
SENSOR DEFINITION
<sensor> <ContainedDevice>Cluster Probe|Canada|Banking|MyBankApp|Production|MyBankServer</ContainedDevice> <BasicSensorSettings> <type>Ping</type> <name>Ping</name> <parentTags>MyTag1;MyTag2;MyTag3</parentTags> <tags>MyTag1;MyTag2;MyTag3</tags> <priority>3</priority> </BasicSensorSettings> <PingSettings> <timoutSec>5</timoutSec> <packetSizeBytes>32</packetSizeBytes> <pingMethod> <sendOneSinglePing>False</sendOneSinglePing> <sendMultiplePingRequests>True</sendMultiplePingRequests> </pingMethod> <pingCount>5</pingCount> <packetDelayMS>5</packetDelayMS> <acknowledgeAutomatically> <showDownStatusOnErrorDefault>True</showDownStatusOnErrorDefault> <showDownAcknowledgedStatusOnError>False</showDownAcknowledgedStatusOnError> </acknowledgeAutomatically> </PingSettings> <SensorDisplay> <primaryChannel>Ping Time (msec)</<primaryChannel> <graphType> <showChannelsIndependantly>True</showChannelsIndependantly> <stackChannelsOnTopOfEachOther>False</stackChannelsOnTopOfEachOther> </graphType> </SensorDisplay> <ScanningInterval> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <scanningInterval>120 seconds</scanningInterval> <ifASensorQueryFails>Set sensor to warning for 1 interval, then set to down (recommended)</ifASensorQueryFails> </ScanningInterval> <SchedulesDepenedenciesMaintenanceWindows> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <schedule>None</schedule> <maintenanceWindow> <doNotSetupAOneTimeMaintenanceWindow>False</doNotSetupAOneTimeMaintenanceWindow> <setupAOneTimeMaintenanceWindow> <status>True</status> <maintenanceBegins>2021-10-10 10:00</maintenanceBegins> <maintenanceEnds>2021-10-11 10:00</maintenanceEnds> <DependencyType> <useParent>False</useParent> <selectASensor> <status>True</status> <dependancy> <device>MyDevice</device> <sensor>MySensor</sensor> </dependancy> <dependencyDelay>0</dependencyDelay> </selectASensor> <masterSensorForParent>False</masterSensorForParent> </DependencyType> </setupAOneTimeMaintenanceWindow> </maintenanceWindow> </SchedulesDepenedenciesMaintenanceWindows> <AccessRights> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <userGroupAccess> <Groups> <group> <userGroup>MyUserGroup1</userGroup> <rights>Inherited (Read Access)</rights> </group> <group> <userGroup>MyUserGroup2</userGroup> <rights>Inherited (No Access)</rights> </group> </Groups> </userGroupAccess> </AccessRights> </sensor>
DEVICE DEFINITION
<device> <ContainedDevice>Cluster Probe|Canada|Banking|MyBankApp|Production</ContainedDevice> <BasicDeviceSettings> <deviceName>MyBankServer</deviceName> <status> <started>True</started> <paused>False</paused> </status> <ipVersion> <IPv4> <status>True</staus> <AddressDNSName>127.0.0.1</AddressDNSName> </IPv4> <IPv6> <status>False</staus> <AddressDNSName>127.0.0.1</AddressDNSName> </IPv6> </ipVersion> <parentTags>MyTag1;MyTag2;MyTag3</parentTags> <tags>MyTag1;MyTag2;MyTag3</tags> <priority>3</priority> </BasicDeviceSettings> <AdditionalDeviceInformation> <DeviceIcon> <Icon1>True</Icon1> <Icon2>False</Icon2> ... </DeviceIcon> <serviceURL>http://127.0.0.1</serviceURL> </AdditionalDeviceInformation> <DeviceIdentificationAndAutoDiscovery> <autoDiscoveryLevel> <noAutoDicovery> <status>False</status> </noAutoDicovery> <standardAutoDisovery> <status>True</status> <schedule>Once</schedule> </standardAutoDisovery> <detailedAutoDisovery> <status>False</status> <schedule>Once</schedule> </detailedAutoDisovery> <autoDisocveryWithSpecificDeviceTemplates> <status>False</status> <schedule>Once</schedule> <deviceTemplates> <deviceTemplate> <name>ASDL</name> <seletced>True</selected> </deviceTemplate> <deviceTemplate> <name>AmazonCloudWatch</name> <seletced>False</selected> </deviceTemplate> <deviceTemplate> <name>BuffaloTeraStationNAS</name> <seletced>False</selected> </deviceTemplate> ... </deviceTemplates> </autoDisocveryWithSpecificDeviceTemplates> </autoDiscoveryLevel> </DeviceIdentificationAndAutoDiscovery> <Location> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <locationForGeoMaps><locationForGeoMaps> </Location> <credentialsForWindowsSystems> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <domainOrComputerName>MyDomain</domainOrComputerName> <userName>MyUser</userName> <Passowrd>********</Passowrd> </credentialsForWindowsSystems> <credentialsForLinuxSolarisMacOSSystems> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForLinuxSolarisMacOSSystems> <credentialsForVMWareXenServer> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForVMWareXenServer> <credentialsForSNMPDevices> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForSNMPDevices> <credentialsForDBMS> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForDBMS> <credentialsForAWS> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForAWS> <credentialsForDellEMC> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForDellEMC> <credentialsForHPE3PAR> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForMicrosoft365> <credentialsForHPE3PAR> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForMicrosoft365> <credentialsForMicrosoftAzure> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForMicrosoftAzure> <credentialsForMQTT> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForMQTT> <credentialsForOPCUA> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForOPCUA> <credentialsForSofficoOrchestra> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForSofficoOrchestra> <credentialsForRESTAPI> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForRESTAPI> <credentialsForVeeam> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForVeeam> <credentialsForVeeam> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> ... </credentialsForVeeam> <WindowsCompatabilityOptions> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <preferredDataSource> <performanceCountersAndWMIAsFallback>False</performanceCountersAndWMIAsFallback> <performanceCountersOnly>False</performanceCountersOnly> <WMIOnly>True</WMIOnly> </preferredDataSource> <timeoutMethod> <use15XScanningInterval>False</use15XScanningInterval> <setManually> <status>True</status> <timeoutSec>60</timeoutSec> </setManually> </timeoutMethod> </WindowsCompatabilityOptions> <SNMPCompatibilityOptions> ... </SNMPCompatibilityOptions> <ProxySettingsForHTTPSensors> <AddressDNSName>127.0.0.1</AddressDNSName> <port>8080</port> <userName>MyUser</userName> <password>MyPassword</password> </ProxySettingsForHTTPSensors> <ScanningInterval> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <scanningInterval>120 seconds</scanningInterval> <ifASensorQueryFails>Set sensor to warning for 1 interval, then set to down (recommended)</ifASensorQueryFails> </ScanningInterval> <SchedulesDepenedenciesMaintenanceWindows> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <schedule>None</schedule> <maintenanceWindow> <doNotSetupAOneTimeMaintenanceWindow>False</doNotSetupAOneTimeMaintenanceWindow> <setupAOneTimeMaintenanceWindow> <status>True</status> <maintenanceBegins>2021-10-10 10:00</maintenanceBegins> <maintenanceEnds>2021-10-11 10:00</maintenanceEnds> <DependencyType> <useParent>False</useParent> <selectASensor> <status>True</status> <dependancy> <device>MyDevice</device> <sensor>MySensor</sensor> </dependancy> <dependencyDelay>0</dependencyDelay> </selectASensor> <masterSensorForParent>False</masterSensorForParent> </DependencyType> </setupAOneTimeMaintenanceWindow> </maintenanceWindow> </SchedulesDepenedenciesMaintenanceWindows> <AccessRights> <inherited>True</inherited> <inheritedFrom>Cluster Probe|Canada|Banking|MyBankApp|Production</inheritedFrom> <userGroupAccess> <Groups> <group> <userGroup>MyUserGroup1</userGroup> <rights>Inherited (Read Access)</rights> </group> <group> <userGroup>MyUserGroup2</userGroup> <rights>Inherited (No Access)</rights> </group> </Groups> </userGroupAccess> </AccessRights> <ChannelUnitConfigurration> ... </ChannelUnitConfigurration> <AdvancedNetworkAnalysis> <unusualDetection> <status>Enable</status> </unusualDetection> <similarSensorDetection> <status>Enable</status> </similarSensorDetection> <systemInformationDetection> <status>Enable</status> </systemInformationDetection> </AdvancedNetworkAnalysis> </device>
Acceptance criteria
Criterion #1 Ability to export sensor definition in an XML or JSON format. This ability can be provisioned via UI or API. NOTE: Not required to implement support for both JSON and XML formats, one or the other will suffice.
Criterion #2 Ability to export device definition in an XML or JSON format. This ability can be provisioned via UI or API. NOTE: Not required to implement support for both JSON and XML formats, one or the other will suffice.
OPTIONAL Criterion Support Sensor / Device Import via definition.
Status
Open