Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
6d5075817e | |||
a02e8c5061 | |||
4a1a8fe8a0 | |||
2087f6829f |
1
TODO.md
1
TODO.md
@ -2,6 +2,7 @@
|
|||||||
- [x] Redis recorder panic
|
- [x] Redis recorder panic
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
|
- [ ] Make recorder.Set concurrent
|
||||||
- [ ] Add json schema to CI and README
|
- [ ] Add json schema to CI and README
|
||||||
- [ ] Update README
|
- [ ] Update README
|
||||||
- [ ] Add Grafana dashboard
|
- [ ] Add Grafana dashboard
|
||||||
|
@ -15,13 +15,13 @@ type: application
|
|||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# This is the chart version. This version number should be incremented each time you make changes
|
||||||
# to the chart and its templates, including the app version.
|
# to the chart and its templates, including the app version.
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||||
version: 0.1.4
|
version: 0.1.6
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application. Versions are not expected to
|
# incremented each time you make changes to the application. Versions are not expected to
|
||||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||||
# It is recommended to use it with quotes.
|
# It is recommended to use it with quotes.
|
||||||
appVersion: "v0.11.2"
|
appVersion: "v0.12.1"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: hull
|
- name: hull
|
||||||
|
@ -163,24 +163,43 @@ func (aw *AmbientWeather) handleProviderRequest(
|
|||||||
updateSpan.SetAttributes(attribute.String("stationName", update.StationConfig.Name))
|
updateSpan.SetAttributes(attribute.String("stationName", update.StationConfig.Name))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Concurrently record the now enriched update
|
||||||
|
// to the configured recorder and to otel, and proxy
|
||||||
|
// to enabled downstream providers
|
||||||
|
var updateWg sync.WaitGroup
|
||||||
|
|
||||||
// Record state
|
// Record state
|
||||||
aw.weatherRecorder.Set(ctx, update)
|
updateWg.Add(1)
|
||||||
|
go func() {
|
||||||
|
defer updateWg.Done()
|
||||||
|
aw.weatherRecorder.Set(ctx, update)
|
||||||
|
}()
|
||||||
|
|
||||||
// Update metrics
|
// Update metrics
|
||||||
aw.metricsUpdate(ctx, p, update)
|
updateWg.Add(1)
|
||||||
|
go func() {
|
||||||
|
defer updateWg.Done()
|
||||||
|
aw.metricsUpdate(ctx, p, update)
|
||||||
|
}()
|
||||||
|
|
||||||
|
// Proxy update to one or both services if configured to do so
|
||||||
|
// Uses a weather update to allow awn to publish to wunderground and
|
||||||
|
// visa versa.
|
||||||
|
if update.StationConfig != nil {
|
||||||
|
updateWg.Add(1)
|
||||||
|
go func() {
|
||||||
|
defer updateWg.Done()
|
||||||
|
aw.proxyUpdate(ctx, p, update)
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
|
updateWg.Wait()
|
||||||
|
|
||||||
l.Debug().
|
l.Debug().
|
||||||
Str("provider", p.Name()).
|
Str("provider", p.Name()).
|
||||||
Any("update", update).
|
Any("update", update).
|
||||||
Msg("successfully handled update")
|
Msg("successfully handled update")
|
||||||
w.Write([]byte("ok"))
|
w.Write([]byte("ok"))
|
||||||
|
|
||||||
// Proxy update to one or both services if configured to do so
|
|
||||||
// Uses a weather update to allow awn to publish to wunderground and
|
|
||||||
// visa versa.
|
|
||||||
if update.StationConfig != nil {
|
|
||||||
aw.proxyUpdate(ctx, p, update)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (aw *AmbientWeather) enrichUpdate(
|
func (aw *AmbientWeather) enrichUpdate(
|
||||||
|
Reference in New Issue
Block a user