FluxFlow.Components.Observability.Composition
1.3.0
See the version list below for details.
dotnet add package FluxFlow.Components.Observability.Composition --version 1.3.0
NuGet\Install-Package FluxFlow.Components.Observability.Composition -Version 1.3.0
<PackageReference Include="FluxFlow.Components.Observability.Composition" Version="1.3.0" />
<PackageVersion Include="FluxFlow.Components.Observability.Composition" Version="1.3.0" />
<PackageReference Include="FluxFlow.Components.Observability.Composition" />
paket add FluxFlow.Components.Observability.Composition --version 1.3.0
#r "nuget: FluxFlow.Components.Observability.Composition, 1.3.0"
#:package FluxFlow.Components.Observability.Composition@1.3.0
#addin nuget:?package=FluxFlow.Components.Observability.Composition&version=1.3.0
#tool nuget:?package=FluxFlow.Components.Observability.Composition&version=1.3.0
FluxFlow.Components.Observability.Composition
Optional FluxFlow.Composition registration helpers for the standalone
observability nodes from FluxFlow.Components.Observability.
This package does not create telemetry sinks, scan assemblies, resolve CLR types from strings, or own expression and selector services. Hosts register the observability node factories explicitly and provide keyed resources when a node configuration needs them.
Registration
services
.AddFluxFlowComposition(configuration)
.RegisterNodes(registry => registry
.RegisterCounter<MyMessage>()
.RegisterLogger<MyMessage>()
.RegisterMetrics<MyMessage>());
Node Types
| Type | Node | Ports |
|---|---|---|
flow.counter |
FlowCounterNode<TInput> |
Input, Output |
flow.logger |
FlowLoggerNode<TInput> |
Input, Output |
flow.metrics |
FlowMetricsNode<TInput> |
Input, Output |
All factories expose Events and Errors. Registrations are closed over
TInput; hosts that need multiple input shapes should use custom node type
strings such as flow.counter.order.
Resources
clock: optional keyedTimeProviderfor all nodes.engine: required keyedIFlowExpressionEngineonly when counter options configurepredicateorexpression.contextFactory: optional keyedIFlowMapContextFactory<TInput>for counters.sizeSelector: optional keyedIObservabilityValueSelector<TInput>for metrics.attribute:{name}: required keyedIObservabilityValueSelector<TInput>for each loggerattributeSelectorsentry.
Configuration
{
"FluxFlow": {
"Composition": {
"workflows": {
"main": {
"nodes": {
"logger": {
"type": "flow.logger",
"resources": {
"clock": "fixed",
"attribute:kind": "kind-selector"
},
"configuration": {
"inputType": "message",
"level": "Information",
"category": "workflow",
"messageTemplate": "Observed {kind} item #{sequence}",
"attributeSelectors": [ "kind" ],
"boundedCapacity": 128
}
}
},
"links": []
}
}
}
}
}
Each node binds its existing options record from composition configuration.
Invalid observability options, such as blank inputType, non-positive
boundedCapacity, or unsupported logger level, fail during composition build
and surface as factory diagnostics when build failures are configured as
diagnostics.
Design Metadata
ObservabilityComponentDesignMetadataProvider exposes neutral Designer metadata
for flow.counter, flow.logger, and flow.metrics so hosts can build
palettes, editors, validation hints, or documentation without copying package
descriptors. The metadata describes the existing observability option records,
fixed ports, option grouping/editor hints, and host-owned resource hints.
Counter metadata exposes the engine, contextFactory, and clock resources,
with engine marked as conditionally required when predicate or expression
is configured. Logger metadata exposes clock and the dynamic
attribute:{name} selector resource pattern used by attributeSelectors.
Metrics metadata exposes sizeSelector and clock. Host-owned resource
metadata also includes key-pattern hints for expression engines, context
factories, selectors, and clocks.
The metadata is authored through the shared validated Designer metadata builder
while preserving the same public metadata contracts consumed by hosts.
Expression engines, context factories, selectors, and optional keyed
TimeProvider clocks remain host-owned resources; option fields such as
engine, attributeSelectors, and sizeSelector only carry the existing
configuration metadata used by the nodes and factories.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FluxFlow.Components.Designer (>= 2.16.0)
- FluxFlow.Components.Observability (>= 3.0.1)
- FluxFlow.Composition (>= 1.0.9)
- FluxFlow.Composition.Hosting (>= 1.0.5)
- FluxFlow.Mapping (>= 1.0.2)
-
net8.0
- FluxFlow.Components.Designer (>= 2.16.0)
- FluxFlow.Components.Observability (>= 3.0.1)
- FluxFlow.Composition (>= 1.0.9)
- FluxFlow.Composition.Hosting (>= 1.0.5)
- FluxFlow.Mapping (>= 1.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 8.0.0-rc.1 | 61 | 9/5/2026 |
| 7.0.0-rc.1 | 77 | 8/9/2026 |
| 6.0.0 | 128 | 8/3/2026 |
| 1.4.0 | 118 | 7/3/2026 |
| 1.3.0 | 119 | 7/2/2026 |
Adds richer Designer option hints and host-owned resource key patterns for observability composition metadata while preserving runtime behavior.