A computer-implemented method of configuring a computer-implemented monitor for monitoring a computer controlled service, comprising: displaying a template selection screen, the template selection screen providing a list of available templates (208, 210), the template selection screen receiving a user selection of one of the available templates, wherein the template selection input is indicative of a service type to be monitored; accessing a selected one of a plurality of monitoring templates based on the user selection, each of the plurality of monitoring templates corresponding to a group of services (216, 218), the group of services being one of a plurality of groups of services, wherein the services are grouped together based on having common monitoring characteristics (212, 214), wherein the common monitoring characteristics of a group of services is obtained by using type inheritance for the type of service represented by a respective monitoring template; displaying a set of user interface configuration displays corresponding to the selected template, the user interface configuration displays allowing a user to enter configuration information which is used to further configure monitoring functions represented by the selected template; receiving a configuration input indicative of user configuration of the selected template, through the set of user interface configuration displays; outputting, to a programmability layer, a service definition, indicative of a configuration of desired monitoring to be performed on the service, based on the selected template and the configuration input, wherein the programmability layer is configured to receive the service definition and to configure monitoring logic for the given service based on the service definition; configuring monitoring logic based on the configuration of desired monitoring defined by the service definition using the programmability layer; and deploying the configured monitoring logic to monitor the service. displaying a template selection screen, the template selection screen providing a list of available templates (208, 210), the template selection screen receiving a user selection of one of the available templates, wherein the template selection input is indicative of a service type to be monitored; accessing a selected one of a plurality of monitoring templates based on the user selection, each of the plurality of monitoring templates corresponding to a group of services (216, 218), the group of services being one of a plurality of groups of services, wherein the services are grouped together based on having common monitoring characteristics (212, 214), wherein the common monitoring characteristics of a group of services is obtained by using type inheritance for the type of service represented by a respective monitoring template; displaying a set of user interface configuration displays corresponding to the selected template, the user interface configuration displays allowing a user to enter configuration information which is used to further configure monitoring functions represented by the selected template; receiving a configuration input indicative of user configuration of the selected template, through the set of user interface configuration displays; outputting, to a programmability layer, a service definition, indicative of a configuration of desired monitoring to be performed on the service, based on the selected template and the configuration input, wherein the programmability layer is configured to receive the service definition and to configure monitoring logic for the given service based on the service definition; configuring monitoring logic based on the configuration of desired monitoring defined by the service definition using the programmability layer; and deploying the configured monitoring logic to monitor the service.