World Meteorological Organization |
Date: 2025-06-02 |
Version: 1.0.0-DRAFT-2025-06-02 |
Document location: TBD |
Document status: DRAFT |
Standing Committee on Information Management and Technology (SC-IMT)[1] |
Commission for Observation, Infrastructure and Information Systems (INFCOM)[2] |
Copyright © 2024 World Meteorological Organization (WMO) |
- 1. Scope
- 2. Conformance
- 3. References
- 4. Terms and definitions
- 5. Conventions
- 6. Introduction
- 7. The WIS2 Monitoring Event Topic
- 8. WIS2 Monitoring Event Message Encoding
- 9. WIS2 Monitoring Event Message Encoding: System Alert Report
- Annex A: Conformance Class Abstract Test Suite (Normative)
- Annex B: Schemas (Normative)
- Annex C: Examples (Informative)
- Annex D: Bibliography
- Annex E: Revision History
i. Abstract
WIS2 is comprised of a network of Global Services which provide highly available services for discovery, subscription, notification and download, based on the publication of data by WIS2 Nodes.
Successful operation of WIS2 Global Services will depend on running well-managed IT environments with a very high level of reliability so that all WIS Users and WIS2 Nodes will be able to access and provide the data they need for their duties. The WIS2 Guide defines service levels and performance indicators [3] for Global Services in order to monitor and maintain the health of the network.
This document defines the content, structure, and encoding for WIS2 monitoring events. This standard is also an encoding extension of the CloudEvents specification.
WIS2 Monitoring Event topics shall leverage various aspects of the WIS2 Topic Hierarchy (such as centre identifiers). WIS2 Monitoring Events messages shall be encoded using CloudEvents along with a domain specific model for WIS2.
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
wmo, wis 2.0, weather, climate, water, metadata, pubsub, event, mqp, monitoring, cloudevents, JSON
iii. Security Considerations
TODO
No security considerations have been made for this standard.
1. Scope
This document defines the content, structure, and encoding for WIS2 Monitoring Events. This standard is also an encoding extension of the CloudEvents specification.
This specification defines the conformance requirements for WIS2 Monitoring Events (topic hierarchy and notification message). Annex A defines the abstract test suite.
2. Conformance
Conformance with this standard shall be checked using the tests specified in Annex A (normative) of this document.
The WIS2 Topic Hierarchy defines the topic hierarchy used by WIS message brokers to manage message delivery to subscribers and / or recipients.
CloudEvents is a specification for describing event data in common formats to provide interoperability across services, platforms and systems. This standard is also an encoding extension of CloudEvents.
Global Service providers are required to comply with all conformance classes of this specification in support of providing highly available services for discovery, subscription, notification and download of data and metadata within WIS2.
WMO shall publish guidance material to assist data providers in constructing WIS2 Monitoring Event Topic and Event Messages.
This standard identifies numerous Requirements Classes which define the functional requirements.
The mandatory Requirements Classes for this specification are:
-
"WIS2 Monitoring Event Topic"
-
"WIS2 Monitoring Event Message Encoding: Core"
-
"WIS2 Monitoring Event Message Encoding: System Alert"
3. References
-
IETF: RFC-8259 The JavaScript Object Notation (JSON) Data Interchange Format (2016) [4]
-
IETF: RFC 3339: Date and Time on the Internet: Timestamps (2002) [5]
-
W3C: Data on the Web Best Practices, W3C Recommendation (2017) [6]
-
IANA: Link Relation Types (2020) [7]
-
IETF: JSON Schema (2022) [8]
-
CloudEvents: CloudEvents specification (2025) [9]
-
OGC API - Common - Part 1: Core (2023) [10]
-
WMO: WIS2 Topic Hierarchy (2022) [11]
-
WMO: WIS2 Notification Message (2022) [12]
-
WMO: WIS2 Metric Hierarchy (2025) [13]
4. Terms and definitions
This document uses the terms defined in OGC Policy Directive 49, which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this Standard and OGC documents do not use the equivalent phrases in the ISO/IEC Directives, Part 2.
This document also uses terms defined in the OGC Standard for Modular specifications (OGC 08-131r3), also known as the 'ModSpec'. The definitions of terms such as standard, specification, requirement, and conformance test are provided in the ModSpec.
The following additional terms and definitions also apply.
4.1. Abbreviated terms
Abbreviation | Term |
---|---|
API |
Application Programming Interface |
DCPC |
Data Collection and Production Centres |
GDC |
Global Discovery Catalogue |
GIS |
Geographic Information System |
GISC |
Global Information System Centre |
HTML |
Hypertext Markup Language |
HTTP |
Hypertext Transfer Protocol |
HTTPS |
Hypertext Transfer Protocol Secure |
IANA |
Internet Assigned Numbers Authority |
IETF |
Internet Engineering Task Force |
ISO |
International Organization for Standardization |
JSON |
JavaScript Object Notation |
MQP |
Message Queuing Protocol |
MQTT |
Message Queuing Telemetry Transport |
NC |
National Centre |
NWP |
Numerical Weather Prediction |
OGC |
Open Geospatial Consortium |
PubSub |
Publish / Subscribe |
URI |
Uniform Resource Identifier |
URL |
Uniform Resource Locator |
URN |
Uniform Resource Name |
UUID |
Universally Unique Identifier |
W3C |
World Wide Web Consortium |
WCMP |
WMO Core Metadata Profile |
WIS |
WMO Information System |
WME |
WIS2 Monitoring Events |
WMEM |
WIS2 Monitoring Event Message |
WMET |
WIS2 Monitoring Event Topic |
WMO |
World Meteorological Organization |
WNM |
WIS2 notification message |
5. Conventions
This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of JSON Schema, or special notes regarding how to read the document.
5.1. Identifiers
The normative provisions in this Standard are denoted by the URI:
All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base.
5.2. Examples
Monitoring event topics examples provided in this specification are encoded as plain text strings
.
Monitoring event message examples provided in this specification are encoded as JSON.
Complete examples can be found at https://schemas.wmo.int/wme/1.0/examples
5.3. Codelists bundle
Given the WIS2 Monitoring Event Topic extends the WIS2 Topic Hierarchy, no additional codelists bundles are made available given the WTH codelists bundles satisfy the requirements of this specification.
5.4. Schemas
Monitoring event message schemas can be found at https://schemas.wmo.int/wme/1.0
5.5. Schema representation
JSON Schema [14] objects are used throughout this standard to define the structure of metadata records. These schema objects are also typically represented using YAML [15]. YAML is a superset of JSON, and in this standard is regarded as equivalent.
Event message instances are always defined as JSON.
6. Introduction
6.1. Motivation
WIS2 Global Services provide high availability capabilities in support of discovery, access and exchange of weather/climate/water/environmental data on WIS2.
Once connected to the WIS2 infrastructure, any Global Service will be monitored by the WIS2 Global Monitor. Monitoring of WIS2 Global Services will allow for detection of service anomalities, interruptions or quality assessments of metadata. These "events" can jeopardize normal WIS2 Operations.
A mechanism to notify on and describe such events is required in support of Global Service communication and corrective action. Using the WIS2 Topic Hierarchy and CloudEvents baselines for this specification provide broad interoperability and low barrier publication and event handling for the WIS2 ecosystem and beyond.
6.2. Scenarios
The following scenarios are useful in understanding the drivers and principles that were used in the development of this specification:
-
Global Service service down: a Global Service may cease to operate for any given reason
-
Global Service malfunctioning: a Global Service may fail to function normally (e.g.: Global Cache not providing messages, etc.)
-
WIS2 Node malfunctioning:
-
a WIS2 Node may publish malformed or invalid WIS2 Notification Messages
-
a WIS2 Node may provide correct notifications but no data
-
These scenarios can be realized as planned/expected outages, or occur suddenly, in an unexpected manner.
Those events should be detected, and the Global Services or WIS2 Nodes should be informed to drive corrective action and succssful operation of WIS2.
7. The WIS2 Monitoring Event Topic
The WIS2 Monitoring Event Topic (WMET) provides a mechanism for Global Services to provide reports and notifications to WIS2 Global Services, as well as data/metadata reports for WIS2 Nodes to subscribe to and receive notifications.
7.1. Requirements Class "WIS2 Monitoring Event Topic"
7.1.1. Overview
This Requirements Class provides requirements for the WIS2 Monitoring Event Topic.
Requirements Class |
|
Target type |
Topic classification |
Dependency |
|
Pre-conditions |
Topic levels 2-4 conform to the WIS2 Topic Hierarchy. |
Successful operation of the WIS2 infrastructure and monitoring events of same should be information that is made available to all Global Services and WIS2 Nodes, and not designed for communication to external users or data consumers. Global Services need to be able to report information to Global Services and WIS2 Nodes to trigger corrective action.
The WMET is composed of five levels: A fixed channel of monitor
, WTH primary topic levels 2 (version) and 3 (system), as well as WTH primary topic level 4 (centre identifier) at two WMET levels:
-
producer: the centre identifier of the entity producing the event notification
-
_subject: the centre identifier of the subject of the event notification
The representation is encoded as a simple text string of values in each topic level separated by a slash (/
).
Examples:
monitor/a/wis2/ca-eccc-msc-global-discovery-catalogue/de-dwd
monitor/a/wis2/fr-meteofrance-global-broker/cn-cma
The table below provides an overview of the primary topic levels.
Level | Name | Description |
---|---|---|
1 |
channel |
Location of where the data originates from (fixed value of |
2 |
version |
Alphabetical version of the topic hierarchy |
3 |
system |
Fixed value of |
4 |
centre-id |
Acronym proposed by Member and endorsed by WMO Secretariat, of the entity producing the event (source) |
5 |
centre-id |
Acronym proposed by Member and endorsed by WMO Secretariat, of the subject of the event (subject) |
7.1.2. Publishing
A simple ruleset is defined for publishing events to WMET that enables the clear identification of the event producer and its subject, to trigger corrective action.
Requirement 1 |
/req/monitoring-event-topic/publishing |
A |
Events SHALL NOT be published with a topic that is not defined in this specification. |
B |
Events SHALL be published to exactly level 5. |
C |
Event topic level 1 SHALL be named |
D |
Event topic level 2 SHALL be named |
E |
Event topic level 3 SHALL be named |
F |
Event topic level 4 SHALL be a centre identifier (as per the WIS2 Topic Hierarchy) based on the entity producing the event. |
G |
Event topic level 5 SHALL be a centre identifier (as per the WIS2 Topic Hierarchy) based on the subject of the event. |
8. WIS2 Monitoring Event Message Encoding
Event payloads published via the WIS2 Monitoring Event Topic (WMET) are defined using the CloudEvents specification as a building block.
8.1. Requirements Class "WIS2 Monitoring Event Message Encoding: Core"
8.1.1. Overview
This Requirements Class provides baseline requirements for all WIS2 event and report types.
CloudEvents provides a standards-based encoding for all event data, and provides mechanisms for extensibility.
Requirements Class |
|
http://wis.wmo.int/spec/wme/1/req/monitoring-event-message-encoding-core |
|
Target type |
Event metadata |
Dependency |
|
Pre-conditions |
The event message conforms to the CloudEvents specification. |
The table below provides an overview of the set of properties that are included in a WIS2 Monitoring Event Message (WMEM).
Property | Requirement | Description |
---|---|---|
|
Required |
A universally unique identifier (UUID) of the message (see Identifier) |
|
Required |
The CloudEvents specification version (see Version) |
|
Required |
The centre identifier producing the event (see Source) |
|
Required |
The event type related to the message (see Type) |
|
Required |
The centre identifier of the subject of the event (see Subject) |
|
Required |
The date and time of when the notification was published, in RFC3339 format, UTC (see Time) |
|
Required |
The media type of the data content encoding in the event message ( |
|
Required |
The event payload as JSON (see Data) |
8.1.2. Message size
The WIS2 Monitoring Event Message Encoding allows for the transmission of event messages in a compact manner.
Requirement 2 |
/req/monitoring-event-message-encoding-core/message_size |
A |
A WMEM message SHALL NOT exceed 64 000 bytes. |
8.1.3. Identifier
A universally unique identifier of the event using the UUID standard (RFC4122). The identifier is generated by the originator of the event.
Example:
"id": "6e1c7f9f-dd6c-48d9-bbc4-aef0625f1fb8"
Requirement 3 |
/req/monitoring-event-message-encoding-core/id |
A |
The |
8.1.4. Version
The CloudEvents specification version of the event message encoding.
Example:
"specversion": "1.0"
Requirement 4 |
/req/monitoring-event-message-encoding-core/version |
A |
The |
8.1.5. Source
The centre identifier of the event producer (as defined in the [wis2-topic-hierarchy]).
Example:
"source": "ca-eccc-msc-global-discovery-catalogue"
Requirement 5 |
/req/monitoring-event-message-encoding-core/source |
A |
The |
8.1.6. Type
The type of event related to the event message encoding, using a reverse DNS notation.
Example:
"type": "int.wmo.wis.wme.event.wcmp2"
Requirement 6 |
/req/monitoring-event-message-encoding-core/type |
A |
The |
B |
The
|
8.1.7. Subject
The centre identifier of the subject of the event (as defined in the [wis2-topic-hierarchy]).
Example:
"subject": "de-dwd"
Requirement 7 |
/req/monitoring-event-message-encoding-core/subject |
A |
The |
8.1.8. Time
The time
property identifies the date/time when the notification was first posted or published by the originator. The date/time is encoded in RFC3339 format with the Coordinated Universal Time (UTC) timezone (Z
).
Example:
"time": "2024-10-17T03:42:23Z"
Requirement 8 |
/req/monitoring-event-message-encoding-core/time |
A |
A WMEM SHALL provide a |
B |
The |
C |
The |
8.1.9. Data content type
The datacontenttype
property identifies the media type associated with the event message payload. application/json
(JSON) is the required media type for all data specific encodings.
Example:
"datacontenttype": "application/json"
Requirement 9 |
/req/monitoring-event-message-encoding-core/datacontenttype |
A |
The |
8.1.10. Data
The data
property provides the event payload in JSON.
Example:
"data": {
"id": "ab7cd199-ffa3-4909-80be-c78e99791435",
"report_type": "ets",
"summary": {
"PASSED": 12,
"FAILED": 0,
"SKIPPED": 0
},
"generated_by": "pywcmp 0.10.1 (https://github.com/wmo-im/pywcmp)",
"tests": [
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/conformance",
"code": "PASSED",
"message": "Passes given schema is compliant/valid"
},
...
}
}
Requirement 10 |
/req/monitoring-event-message-encoding-core/data |
A |
The |
B |
The |
9. WIS2 Monitoring Event Message Encoding: System Alert Report
System Alert Report payloads published via the WIS2 Monitoring Event Topic (WMET) are defined using the associated requirements and schema described in this Requirements Class.
9.1. Requirements Class "WIS2 Monitoring Event Message Encoding: System Alert Report"
9.1.1. Overview
This Requirements Class provides the requirements for System Alert reports. Metrics that are provided by WIS2 Global Services are used to trigger System Alerts that define the conditions and criteria to emit events. System Alert reports are used to trigger corrective action to ensure healthly and stable WIS2 operations.
Requirements Class |
|
http://wis.wmo.int/spec/wme/1/req/monitoring-event-message-encoding-system-alert |
|
Target type |
Event metadata |
Dependency |
|
Dependency |
|
Pre-conditions |
The event message conforms to "WIS2 Monitoring Event Message Encoding: Core" Requirements Class. |
Examples of System Alert reports include (but are not limited to):
-
a WIS2 Global Discovery Catalogue’s metadata archive is older than 24 hours
-
a WIS2 Node is disconnected from all Global Brokers
-
a WIS2 Node does not provide any data in the last 6 hours
9.1.2. Validation
The System Alert report schema is based on the Requirements Class WIS2 Monitoring Event Message Encoding: Core schema and the associated information model, and applies to the data
property of an event report.
Requirement 11 |
/req/monitoring-event-message-encoding-system-alert/validation |
A |
Each System Alert report SHALL validate without error against the System Alert report schema. |
9.1.3. Type
The type of event related to the event message encoding, using a reverse DNS notation.
Example:
"type": "int.wmo.wis.wme.event.system.alert"
Requirement 12 |
/req/monitoring-event-message-encoding-system-alert/type |
A |
The |
9.1.4. Data schema
The dataschema
property identifies the JSON Schema that is adhered to by event message payload. This is the value of a given JSON Schema’s $id
property.
Example:
"dataschema": "https://schemas.wmo.int/wme/1.0.0/schemas/wis2-event-message-encoding-system-alert.json"
Requirement 13 |
/req/monitoring-event-message-encoding-system-alert/dataschema |
A |
The |
9.1.5. Data
The System Alert report data
property provides the event payload in JSON, using the "Problem Details" schema of OGC API - Common - Part 1: Core as the content model.
9.1.6. Data type
The data.type
property defines a URN that is prefixed by wmem-alert
and based on WIS2 Metric Hierarchy alert names [16].
Example:
"type": "wmem-alert:Metadata_archive_older_than_24_hours"
Requirement 14 |
/req/monitoring-event-message-encoding-system-alert/data_type |
A |
A WMEM SHALL provide a |
B |
The |
C |
The |
9.1.7. Data title
The data.title
property defines a texual summary based on WIS2 Metric Hierarchy alert summary annotations [17].
Example:
"title": "Metadata archive is older than 24 hours"
Requirement 15 |
/req/monitoring-event-message-encoding-system-alert/data_title |
A |
A WMEM SHALL provide a |
B |
The |
9.1.8. Data detail
The data.detail
property defines a detailed description of the problem, as defined by the issuer of the System Alert report.
Example:
"detail": "Metadata archive is older than 24 hours. Please contact the administrator at admin@example.org for more information"
Requirement 16 |
/req/monitoring-event-message-encoding-system-alert/data_detail |
A |
A WMEM SHALL provide a |
9.1.9. Data wmem:severity
The data.wmem:severity
property defines a list of severity levels to describe the seriousness of an event.
Example:
"wmem:severity": "critical"
Requirement 17 |
/req/monitoring-event-message-encoding-system-alert/datawmem-severity |
A |
A WMEM SHALL provide a |
B |
The
|
Annex A: Conformance Class Abstract Test Suite (Normative)
A.1. Conformance Class: WIS2 Monitoring Event Topic
- label
- subject
-
Requirements Class "WIS2 Monitoring Event Topic"
- classification
-
Target Type:Topic Classification
A.1.1. Publishing
- label
-
/conf/monitoring-event-topic/publishing
- subject
-
/req/monitoring-event-topic/publishing
- test-purpose
-
Validate that a given topic meets the conventions of WMET.
Split the topic by the /
character, into tokens.
Check that there are exactly 5 tokens.
Check that the first token is a value of monitor
.
Check that the second token is a value of a
.
Check that the third token is a value of wis2
.
Check that the fourth token is a valid centre identifier.
Check that the fifth token is also a valid centre identifier.
A.2. Conformance Class: WIS2 Monitoring Event Message Encoding: Core
- label
-
http://wis.wmo.int/spec/wme/1/req/monitoring-event-message-encoding-core
- subject
-
Requirements Class "WIS2 Monitoring Event Message Encoding: Core"
- classification
-
Target Type:Event Metadata
A.2.1. Message size
- label
-
/conf/event-message-encoding-core/message_size
- subject
-
/req/event-message-encoding-core/message_size
- test-purpose
-
Validate that a WMEM has a valid message size.
Check that the size of the complete WMEM does not exceed 64000 bytes.
A.2.2. Identifier
- label
-
/conf/event-message-encoding-core/id
- subject
-
/req/event-message-encoding-core/id
- test-purpose
-
Validate that a WMEM has a valid identifier.
Check for the existence of an id
property in the WMEM.
Check that the id
property is a valid UUID.
A.2.3. Version
- label
-
/conf/event-message-encoding-core/version
- subject
-
/req/event-message-encoding-core/version
- test-purpose
-
Validate that a WMEM has a valid version.
Check for the existence of a specversion
property in the WMEM.
Check that the specversion
property is set to 1.0
.
A.2.4. Source
- label
-
/conf/event-message-encoding-core/source
- subject
-
/req/event-message-encoding-core/source
- test-purpose
-
Validate that a WMEM has a valid source.
Check for the existence of a source
property in the WMEM.
Check that the source
property is a valid WIS2 centre identifier.
A.2.5. Type
- label
-
/conf/event-message-encoding-core/type
- subject
-
/req/event-message-encoding-core/type
- test-purpose
-
Validate that a WMEM has a valid type.
Check for the existence of a type
property in the WMEM.
Check that the type
property begins with int.wmo.wis.wme.event
.
A.2.6. Subject
- label
-
/conf/event-message-encoding-core/subject
- subject
-
/req/event-message-encoding-core/subject
- test-purpose
-
Validate that a WMEM has a valid subject.
Check for the existence of a subject
property in the WMEM.
Check that the subject
property is a valid WIS2 centre identifier.
A.2.7. Time
- label
-
/conf/event-message-encoding-core/time
- subject
-
/req/event-message-encoding-core/time
- test-purpose
-
Validate that a WMEM has a valid identifier.
Check for the existence of an time
property.
Check that the time
property is in RFC3339 format.
Check that the time
property is in the UTC timezone.
A.2.8. Data content type
- label
-
/conf/event-message-encoding-core/datacontenttype
- subject
-
/req/event-message-encoding-core/datacontenttype
- test-purpose
-
Validate that a WMEM has a valid data content type.
Check for the existence of a datacontenttype
property in the WMEM.
Check that the datacontenttype
property is set to application/json
.
A.3. Conformance Class: WIS2 Monitoring Event Message Encoding: System Alert
- label
-
http://wis.wmo.int/spec/wme/1/req/monitoring-event-message-encoding-system-alert
- subject
-
Requirements Class "WIS2 Monitoring Event Message Encoding: System Alert"
- classification
-
Target Type:Event Metadata
A.3.1. Validation
- label
-
/conf/event-message-encoding-system-alert/validation
- subject
-
/req/event-message-encoding-system-alert/validation
- test-purpose
-
Validate that a System Alert report is valid to the authoritative System Alert report schema.
Run JSON Schema validation on the System Alert report against the System Alert report authoritative schema.
A.3.2. Type
- label
-
/conf/event-message-encoding-system-alert/type
- subject
-
/req/event-message-encoding-system-alert/type
- test-purpose
-
Validate that a System Alert report has a valid type.
Check for the existence of a type
property in the WMEM.
Check that the type
property is equal to int.wmo.wis.wme.event.system.alert
.
A.3.3. Data schema
- label
-
/conf/event-message-encoding-system-alert/dataschema
- subject
-
/req/event-message-encoding-system-alert/dataschema
- test-purpose
-
Validate that a System Alert report has a valid data schema.
Check for the existence of a dataschema
property in the WMEM.
Issue a HTTP GET request on the value of the dataschema
property.
Parse the HTTP response.
Ensure the response is a valid JSON Schema.
A.3.4. Data type
- label
-
/conf/event-message-encoding-system-alert/data_type
- subject
-
/req/event-message-encoding-system-alert/data_type
- test-purpose
-
Validate that a System Alert report has a valid data type.
Check for the existence of a data.type
property in the WMEM.
Check that the data.type
property has a prefix of wmem:alert
.
Check that the data.type
property has a suffix equal to WIS2 Metric Hierarchy alert names (i.e. value of groups[*].rules.alert
).
A.3.5. Data title
- label
-
/conf/event-message-encoding-system-alert/data_title
- subject
-
/req/event-message-encoding-system-alert/data_title
- test-purpose
-
Validate that a System Alert report has a valid data title.
Check for the existence of a data.title
property in the WMEM.
Check that the data.type
property has a value equal to WIS2 Metric Hierarchy alert summary annotations (i.e. value of groups[*].rules.annotations.summary
).
A.3.6. Data detail
- label
-
/conf/event-message-encoding-system-alert/data_detail
- subject
-
/req/event-message-encoding-system-alert/data_detail
- test-purpose
-
Validate that a System Alert report has a valid data title.
Check for the existence of a data.detail
property in the WMEM.
A.3.7. Data wmem:severity
- label
-
/conf/event-message-encoding-system-alert/datawmem-severity
- subject
-
/req/event-message-encoding-system-alert/datawmem-severity
- test-purpose
-
Validate that a System Alert report has a valid data severity.
Check for the existence of a data.wmem:severity
property in the WMEM.
Check that the data.wmem-severity
property is equal to one of the following values:
-
debug
-
info
-
warning
-
error
-
critical
Annex B: Schemas (Normative)
Note
|
Schema documents will only be published on schemas.wmo.int once the standard has been approved.
|
B.1. WIS2 Monitoring Event Message Encoding Schema
$schema: https://json-schema.org/draft/2020-12/schema
$id: https://schemas.wmo.int/wme/1/eventMessageEncodingJSON.yaml
title: WIS2 Event Message Encoding
description: WIS2 Event Message Encoding
allOf:
- $ref: 'cloudevents-v1.0.2.yaml'
- properties:
type:
type: string
enum:
- int.wmo.wis.wme.event.wcmp2.ets
- int.wmo.wis.wme.event.wcmp2.kpi
- int.wmo.wis.wme.event.wnm.schema
- int.wmo.wis.wme.event.system.alert
required:
- datacontenttype
- dataschema
- subject
- time
- data
B.2. WIS2 Monitoring Event Message System Alert Report Encoding Schema
$schema: https://json-schema.org/draft/2020-12/schema
$id: https://schemas.wmo.int/wme/1/systemAlertReportJSON.yaml
title: WIS2 System Alert report Message Encoding
description: WIS2 System Alert Message Encoding
allOf:
- $ref: 'monitoringEventMessageEncodingJSON.yaml'
- properties:
data:
allOf:
- $ref: 'https://schemas.opengis.net/ogcapi/common/part1/1.0/openapi/schemas/exception.yaml'
- properties:
wmem:severity:
type: string
description: Severity level of a System Alert
enum:
- debug
- info
- warning
- error
- critical
required:
- type
- title
- detail
- wmem:severity
Annex C: Examples (Informative)
C.1. WIS2 Monitoring Topic
monitor/a/wis2/ca-eccc-msc-global-discovery-catalogue/fr-meteofrance
monitor/a/wis2/fr-meteofrance-global-broker/ar-smn
C.2. WIS2 Monitoring Event Message Encoding: WCMP2 ETS Report
{
"specversion": "1.0",
"type": "int.wmo.wis.wme.event.wcmp2.ets",
"source": "ca-eccc-msc-global-discovery-catalogue",
"subject": "de-dwd",
"id": "6e1c7f9f-dd6c-48d9-bbc4-aef0625f1fb8",
"time": "2024-10-17T05:13:22Z",
"datacontenttype": "application/json",
"dataschema": "https://schemas.wmo.int/wme/1.0.0/schemas/wcmp2-ets-bundled.json",
"data": {
"id": "f84f34d6-cfb0-4cff-98ec-32f88d0fd7b8",
"report_type": "ets",
"summary": {
"PASSED": 12,
"FAILED": 0,
"SKIPPED": 0
},
"generated_by": "pywcmp 0.10.1 (https://github.com/wmo-im/pywcmp)",
"tests": [
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/conformance",
"code": "PASSED",
"message": "Passes given schema is compliant/valid"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/contacts",
"code": "PASSED"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/record_created_datetime",
"code": "PASSED"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/data_policy",
"code": "PASSED"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/description",
"code": "PASSED",
"message": "Passes given schema is compliant/valid"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/extent_geospatial",
"code": "PASSED"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/extent_temporal",
"code": "PASSED",
"message": "Passes given schema is compliant/valid"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/identifier",
"code": "PASSED"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/links",
"code": "PASSED"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/themes",
"code": "PASSED"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/title",
"code": "PASSED",
"message": "Passes given schema is compliant/valid"
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/conf/core/type",
"code": "PASSED"
}
],
"datetime": "2024-10-02T13:55:00Z",
"metadata_id": "urn:wmo:md:de-dwd:icon-eps.ALL"
}
}
C.3. WIS2 Monitoring Event Message Encoding: WCMP2 KPI Report
{
"specversion": "1.0",
"type": "int.wmo.wis.wme.event.wcmp2.kpi",
"source": "ca-eccc-msc-global-discovery-catalogue",
"subject": "de-dwd",
"id": "6e1c7f9f-dd6c-48d9-bbc4-aef0625f1fb8",
"time": "2025-02-01T18:19:37Z",
"datacontenttype": "application/json",
"dataschema": "https://schemas.wmo.int/wme/1.0.0/schemas/wcmp2-ets-bundled.json",
"data": {
"id": "38631309-36b7-4c71-a7cd-aaca48f81a49",
"report_type": "kpi",
"metadata_id": "urn:wmo:md:de-dwd:icon-eps.ALL",
"datetime": "2025-02-01T18:17:24Z",
"generated_by": "pywcmp 0.10.1 (https://github.com/wmo-im/pywcmp)",
"tests": [
{
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/contacts",
"title": "Contacts",
"total": 3,
"score": 3,
"comments": [],
"percentage": 100.0
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/good_quality_description",
"title": ": Good quality description",
"total": 4,
"score": 3,
"comments": [
"Description contains spelling errors ['eps', 'deg', '180h', 'lat', '6h', 'utc', 'lon']"
],
"percentage": 75.0
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/graphic_overview_for_metadata_records",
"title": "Graphic overview for metadata records",
"total": 0,
"score": 0,
"comments": [],
"percentage": null
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/links_health",
"title": "Links health",
"total": 22,
"score": 22,
"comments": [],
"percentage": 100.0
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/persistent_identifiers",
"title": "Persistent identifiers",
"total": 3,
"score": 1,
"comments": [
"No DOI/ARK/HDL schema found"
],
"percentage": 33.333
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/time_intervals",
"title": "Time intervals",
"total": 6,
"score": 5,
"comments": [
"No temporal resolution found"
],
"percentage": 83.333
},
{
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/good_quality_title",
"title": "Global Ensemble Prediction Model",
"total": 8,
"score": 7,
"comments": [
"Title is not sentence case"
],
"percentage": 87.5
}
],
"summary": {
"total": 46,
"score": 41,
"comments": {
"id": "http://wis.wmo.int/spec/wcmp/2/kpi/core/good_quality_title",
"title": "Global Ensemble Prediction Model",
"total": 8,
"score": 7,
"comments": [
"Title is not sentence case"
],
"percentage": 87.5
},
"percentage": 89.13,
"grade": "A"
}
}
}
C.4. WIS2 Monitoring Event Message Encoding: WNM Schema Compliance Report
{
"specversion": "1.0",
"type": "int.wmo.wis.wme.event.wnm.schema",
"source": "io-wis2dev-global-broker",
"subject": "io-wis2dev-12-test",
"id": "08361ecb-e7ff-4965-9abe-465b63433ca5",
"time": "2024-12-11T12:54:40.605Z",
"datacontenttype": "application/json",
"dataschema": "https://schemas.wmo.int/wme/1.0.0/schemas/wnm-exception.json",
"data": {
"topic": "cache/a/wis2/de-dwd-gts-to-wis2/data/recommended/U/A/N/T/99/kddl",
"wnm": {
"id": "885f789e-b724-11ef-bede-e43d1a214826",
"conformsTo": [
"http://wis.wmo.int/spec/wnm/1/conf/core"
],
"type": "Feature",
"geometry": null,
"properties": {
"data_id": "wis2/de-dwd-gts-to-wis2/data/recommended/U/A/N/T/99/kddl/UANT99KDDL101828",
"metadata_id": "",
"gts": {
"ttaaii": "UANT99",
"cccc": "kddl"
},
"pubtime": "2024-12-10T18:28:20.643304Z",
"integrity": {
"method": "sha512",
"value": "o0JGIwEbv4XGDPhxc7vf1dcX8BJb6tYl+xogVxENgYZ8ddVxnLxwPfhCqkmnuGqRP4jYpr5FZ3z0RHH9IcmLag=="
}
},
"links": [
{
"href": "https://wis2.dwd.de/recommended/gts/kddl/A_UANT99KDDL101828_C_EDZW_20241210182815_25486915",
"rel": "canonical",
"type": "application/octet-stream",
"security": {
"default": {
"type": "http",
"scheme": "basic",
"description": "Please contact DWD Team for WIS2 Global Cache via wis@dwd.de for accessing this secured resource."
}
},
"length": 122
},
{
"href": "https://gisc.dwd.de/angular-frontend/xmlProductDetails;pid=urn:x-wmo:md:int.wmo.wis::UANT99KDDL",
"rel": "about",
"type": "text/html"
}
]
},
"exception": {
"code": "invalid-schema",
"description": "WIS2 Notification Message not compliant with the defined schema",
"errors": [
{
"keyword": "required",
"dataPath": ".properties",
"schemaPath": "#/properties/properties/oneOf/0/allOf/0/required",
"params": {
"missingProperty": "start_datetime"
},
"message": "should have required property 'start_datetime'"
},
{
"keyword": "required",
"dataPath": ".properties",
"schemaPath": "#/properties/properties/oneOf/0/allOf/0/required",
"params": {
"missingProperty": "end_datetime"
},
"message": "should have required property 'end_datetime'"
},
{
"keyword": "required",
"dataPath": ".properties",
"schemaPath": "#/properties/properties/oneOf/1/allOf/0/required",
"params": {
"missingProperty": "datetime"
},
"message": "should have required property 'datetime'"
},
{
"keyword": "oneOf",
"dataPath": ".properties",
"schemaPath": "#/properties/properties/oneOf",
"params": {},
"message": "should match exactly one schema in oneOf"
}
]
}
}
}
C.5. WIS2 Monitoring Event Message Encoding: System Alert Report
{
"specversion": "1.0",
"type": "int.wmo.wis.wme.event.system.alert",
"source": "de-dwd-global-cache",
"subject": "ca-eccc-msc-global-discovery-catalogue",
"id": "6e1c7f9f-dd6c-48d9-bbc4-aef0625f1fb8",
"time": "2024-10-17T05:13:22Z",
"datacontenttype": "application/json",
"dataschema": "https://schemas.wmo.int/wme/1.0.0/schemas/wis2-event-message-encoding-system-alert.json",
"data": {
"type": "wmem-alert:Metadata_archive_older_than_24_hours",
"title": "Metadata archive is older than 24 hours",
"detail": "The metadata archive is older than 24 hours. Please contact the administrator",
"wmem:severity": "critical"
}
}
Annex D: Bibliography
-
W3C/OGC: Spatial Data on the Web Best Practices, W3C Working Group Note 28 September 2017, https://www.w3.org/TR/sdw-bp
-
W3C: Data on the Web Best Practices, W3C Recommendation 31 January 2017, https://www.w3.org/TR/dwbp
-
IANA: Link Relation Types, https://www.iana.org/assignments/link-relations/link-relations.xml