diff --git a/.chloggen/geo_merge_lat_lon.yaml b/.chloggen/geo_merge_lat_lon.yaml
new file mode 100755
index 0000000000..69711a6ec8
--- /dev/null
+++ b/.chloggen/geo_merge_lat_lon.yaml
@@ -0,0 +1,22 @@
+# Use this changelog template to create an entry for release notes.
+#
+# If your change doesn't affect end users you should instead start
+# your pull request title with [chore] or use the "Skip Changelog" label.
+
+# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
+change_type: breaking
+
+# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db)
+component: geo
+
+# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
+note: Merging `geo.location.lon` and `geo.location.lat` into a single `geo.location` field.
+
+# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
+# The values here must be integers.
+issues: [1638]
+
+# (Optional) One or more lines of additional information to render under the primary note.
+# These lines will be padded with 2 spaces and then inserted directly into the document.
+# Use pipe (|) for multiline entries.
+subtext:
diff --git a/docs/attributes-registry/geo.md b/docs/attributes-registry/geo.md
index c86484d9b3..5447e6158f 100644
--- a/docs/attributes-registry/geo.md
+++ b/docs/attributes-registry/geo.md
@@ -6,6 +6,9 @@
# Geo
+- [Geo Attributes](#geo-attributes)
+- [Deprecated geo Attributes](#deprecated-geo-attributes)
+
## Geo Attributes
Geo fields can carry data about a specific location related to an event. This geolocation information can be derived from techniques such as Geo IP, or be user-supplied.
@@ -16,8 +19,7 @@ Note: Geo attributes are typically used under another namespace, such as client.
| `geo.continent.code` | string | Two-letter code representing continent’s name. | `AF`; `AN`; `AS` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `geo.country.iso_code` | string | Two-letter ISO Country Code ([ISO 3166-1 alpha2](https://wikipedia.org/wiki/ISO_3166-1#Codes)). | `CA` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `geo.locality.name` | string | Locality name. Represents the name of a city, town, village, or similar populated place. | `Montreal`; `Berlin` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
-| `geo.location.lat` | double | Latitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84). | `45.505918` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
-| `geo.location.lon` | double | Longitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84). | `-73.61483` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
+| `geo.location` | double[] | Longitude and latitude (in that order) of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84). | `[45.505918, -73.61483]` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `geo.postal_code` | string | Postal code associated with the location. Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. | `94040` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `geo.region.iso_code` | string | Region ISO code ([ISO 3166-2](https://wikipedia.org/wiki/ISO_3166-2)). | `CA-QC` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
@@ -34,3 +36,12 @@ Note: Geo attributes are typically used under another namespace, such as client.
| `NA` | North America | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `OC` | Oceania | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `SA` | South America | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
+
+## Deprecated geo Attributes
+
+"Describes deprecated geo attributes."
+
+| Attribute | Type | Description | Examples | Stability |
+|---|---|---|---|---|
+| `geo.location.lat` | double | Deprecated. Use `geo.location` instead. | `45.505918` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Use `geo.location` instead. |
+| `geo.location.lon` | double | Deprecated. Use `geo.location` instead. | `-73.61483` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)
Use `geo.location` instead. |
diff --git a/model/geo/deprecated/registry-deprecated.yaml b/model/geo/deprecated/registry-deprecated.yaml
new file mode 100644
index 0000000000..1d3b30f82b
--- /dev/null
+++ b/model/geo/deprecated/registry-deprecated.yaml
@@ -0,0 +1,22 @@
+groups:
+ - id: registry.geo.deprecated
+ type: attribute_group
+ display_name: Deprecated geo Attributes
+ brief: >
+ "Describes deprecated geo attributes."
+ stability: experimental
+ attributes:
+ - id: geo.location.lon
+ stability: experimental
+ type: double
+ deprecated: "Use `geo.location` instead."
+ brief: >
+ Deprecated. Use `geo.location` instead.
+ examples: [ -73.614830 ]
+ - id: geo.location.lat
+ stability: experimental
+ type: double
+ deprecated: "Use `geo.location` instead."
+ brief: >
+ Deprecated. Use `geo.location` instead.
+ examples: [ 45.505918 ]
diff --git a/model/geo/registry.yaml b/model/geo/registry.yaml
index e370fbd4df..0c9eef1ff3 100644
--- a/model/geo/registry.yaml
+++ b/model/geo/registry.yaml
@@ -56,18 +56,12 @@ groups:
brief: >
Two-letter ISO Country Code ([ISO 3166-1 alpha2](https://wikipedia.org/wiki/ISO_3166-1#Codes)).
examples: [ 'CA' ]
- - id: geo.location.lon
+ - id: geo.location
stability: experimental
- type: double
+ type: double[]
brief: >
- Longitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
- examples: [ -73.614830 ]
- - id: geo.location.lat
- stability: experimental
- type: double
- brief: >
- Latitude of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
- examples: [ 45.505918 ]
+ Longitude and latitude (in that order) of the geo location in [WGS84](https://wikipedia.org/wiki/World_Geodetic_System#WGS84).
+ examples: [ [45.505918, -73.614830] ]
- id: geo.postal_code
stability: experimental
type: string