TPL DataFlow StatisticsWhat are the use cases for TPL Dataflow over Reactive Extensions (Rx)Tasks vs. TPL Dataflow vs. Async/Await, which to use when?TPL Dataflow: design for parallelism while keeping orderDo you need to wait for completion on a TPL Dataflow DataflowBlock.NullTarget<T>Multiple Short-lived TPL Dataflows versus Single Long-Running FlowTPL Dataflow with Railway ProgrammingTPL Block with round robin link?Is TPL Dataflow BufferBlock thread safe?TPL Dataflow: Why does EnsureOrdered = false destroy parallelism for this TransformManyBlock?Reopen TPL Dataflow input after marking it complete
How to delete a line from a variable?
"DDoouubbllee ssppeeaakk!!"
Should students have access to past exams or an exam bank?
top-aligned marginpar on wrong side (even/odd) after pagebreak
For attacks with ranged weapons, is the attacker's Dexterity bonus added to the damage roll?
Guidelines for writing a chord progression
Convert research into business
A conjectural trigonometric identity
What are the effects of the elements on 3D printed objects made with "infused" PLA
Can I shorten this filter, that finds disk sizes over 100G?
How to trick a fairly simplistic kill-counter?
Why don't short runways use ramps for takeoff?
IBM mainframe classic executable file formats
Should I put my name first or last in the team members list?
Why do we need a voltage divider when we get the same voltage at the output as the input?
Using Python in a Bash Script
What is my clock telling me to do?
How can flights operated by the same company have such different prices when marketed by another?
Reasons for using monsters as bioweapons
How can a class have multiple methods without breaking the single responsibility principle
Solve the mystery of the poisonous chemical
Russian pronunciation of /etc (a directory)
Should 2FA be enabled on service accounts?
How to get Planck length in meters to 6 decimal places
TPL DataFlow Statistics
What are the use cases for TPL Dataflow over Reactive Extensions (Rx)Tasks vs. TPL Dataflow vs. Async/Await, which to use when?TPL Dataflow: design for parallelism while keeping orderDo you need to wait for completion on a TPL Dataflow DataflowBlock.NullTarget<T>Multiple Short-lived TPL Dataflows versus Single Long-Running FlowTPL Dataflow with Railway ProgrammingTPL Block with round robin link?Is TPL Dataflow BufferBlock thread safe?TPL Dataflow: Why does EnsureOrdered = false destroy parallelism for this TransformManyBlock?Reopen TPL Dataflow input after marking it complete
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
So I've recently started working with the TPL dataflow library. I wanted to run a task that would periodically output statistics related to one or more blocks in my data flow. In a propagator block I would like to output how many items are waiting to be processed, how many items are waiting to be passed to the next block, and how many items have been processed by the block since it was started.
I was surprised to discover that there are seemingly no buffer count properties exposed by any of the dataFlow interfaces. For example, the TransformManyBlock class implements InputCount and OutputCound properties, but those properties are not defined by any of the interfaces that TransformManyBlock implements. This makes it tough to create a general method that takes any IPropagatorBlock and keeps running statistics about the flow of data through that block.
Is there anyway to hook into a dataFlow block in a general way to be informed of how many messages are being queued and/or processed by that block?
task-parallel-library dataflow
add a comment |
So I've recently started working with the TPL dataflow library. I wanted to run a task that would periodically output statistics related to one or more blocks in my data flow. In a propagator block I would like to output how many items are waiting to be processed, how many items are waiting to be passed to the next block, and how many items have been processed by the block since it was started.
I was surprised to discover that there are seemingly no buffer count properties exposed by any of the dataFlow interfaces. For example, the TransformManyBlock class implements InputCount and OutputCound properties, but those properties are not defined by any of the interfaces that TransformManyBlock implements. This makes it tough to create a general method that takes any IPropagatorBlock and keeps running statistics about the flow of data through that block.
Is there anyway to hook into a dataFlow block in a general way to be informed of how many messages are being queued and/or processed by that block?
task-parallel-library dataflow
Check out DataflowEx Logging it may have just what your looking for. Or you could extend theIPropagatorBlockinterfaces yourself.
– JSteward
Mar 27 at 0:55
add a comment |
So I've recently started working with the TPL dataflow library. I wanted to run a task that would periodically output statistics related to one or more blocks in my data flow. In a propagator block I would like to output how many items are waiting to be processed, how many items are waiting to be passed to the next block, and how many items have been processed by the block since it was started.
I was surprised to discover that there are seemingly no buffer count properties exposed by any of the dataFlow interfaces. For example, the TransformManyBlock class implements InputCount and OutputCound properties, but those properties are not defined by any of the interfaces that TransformManyBlock implements. This makes it tough to create a general method that takes any IPropagatorBlock and keeps running statistics about the flow of data through that block.
Is there anyway to hook into a dataFlow block in a general way to be informed of how many messages are being queued and/or processed by that block?
task-parallel-library dataflow
So I've recently started working with the TPL dataflow library. I wanted to run a task that would periodically output statistics related to one or more blocks in my data flow. In a propagator block I would like to output how many items are waiting to be processed, how many items are waiting to be passed to the next block, and how many items have been processed by the block since it was started.
I was surprised to discover that there are seemingly no buffer count properties exposed by any of the dataFlow interfaces. For example, the TransformManyBlock class implements InputCount and OutputCound properties, but those properties are not defined by any of the interfaces that TransformManyBlock implements. This makes it tough to create a general method that takes any IPropagatorBlock and keeps running statistics about the flow of data through that block.
Is there anyway to hook into a dataFlow block in a general way to be informed of how many messages are being queued and/or processed by that block?
task-parallel-library dataflow
task-parallel-library dataflow
asked Mar 26 at 23:07
smarcaurelesmarcaurele
2152 silver badges8 bronze badges
2152 silver badges8 bronze badges
Check out DataflowEx Logging it may have just what your looking for. Or you could extend theIPropagatorBlockinterfaces yourself.
– JSteward
Mar 27 at 0:55
add a comment |
Check out DataflowEx Logging it may have just what your looking for. Or you could extend theIPropagatorBlockinterfaces yourself.
– JSteward
Mar 27 at 0:55
Check out DataflowEx Logging it may have just what your looking for. Or you could extend the
IPropagatorBlock interfaces yourself.– JSteward
Mar 27 at 0:55
Check out DataflowEx Logging it may have just what your looking for. Or you could extend the
IPropagatorBlock interfaces yourself.– JSteward
Mar 27 at 0:55
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55367466%2ftpl-dataflow-statistics%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.
Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55367466%2ftpl-dataflow-statistics%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Check out DataflowEx Logging it may have just what your looking for. Or you could extend the
IPropagatorBlockinterfaces yourself.– JSteward
Mar 27 at 0:55