The service computing paradigm has been widely adopted in various domains, such as in Web applications, Cloud computing and Internet of Things (IoT). Service providers offer services to their clients depending on their functional and non-functional requirements. Generally, the process of using a service consists of three steps discovery, selection, and invocation. This process is subject to many variables. For instance, no service with the required properties was found implying a requirement update, or just the invocation does not work. Therefore, the service monitoring is a necessary feature to be included by service providers. In this paper, we propose a model at-runtime approach to monitor this three-steps-process. We specify the proposed model using the Petri net formalism and the Flexible framework. Our approach allows service managers to monitor the three steps, change requirements when no service can satisfy the current requirements, and select other services when invocations fail. The monitoring system notifies service managers about the request state, the requirement changes required, and the invocation failures based on the Petri net marking. In addition, Python expressions can be used at runtime. Finally, a case study illustrates the approach by the implementation of a compression service.