How to debug Service Fabric stateful service / actor state - actor

I implemented a basic Service Fabric StatefulService that stores questionnaire data using its IReliableStateManager. In order to debug a method, I would need to view the StateManager data using some sort of browser or administration console. It doesn't seem to be possible using the Service Fabric Explorer.
How can this be done?

You have to expose APIs that allow reading of the data and create the viewer as part of your application. There is no generic way to do this today.

Related

Does MassTransit support Activity / ConsolidationId on Azure?

I'm using Application Insights (AI) to instrument my code. AI uses Activity to provide some data. Activity.ParentId can be used as a per-transaction identifier, across multiple services, so that a single API call can be tracked through the code, to the database and other HTTP services etc.
MassTransit has a message ConsolidationId, to track (I believe) Sagas, but I don't think it is using the Activity.ParentId.
Am I right?
How can I get MT to use the Activity.ParentId as a ConsolidationId, both as a publisher and consumer?
MassTransit supports Open Telemetry, which can easily be configured to push data to Azure Application Insights.
There is a complete sample that shows how to configure it.

Create and retrieve documents from IBM BPM document store using a service without any UI

My BPM application doesn't have any UI as it is used by an external system. The external UI will need to invoke the service(s) in BPM that can store and retrieve the documents in IBM Document Store based on some identifier like process instance.
I couldn't succeed with tw.system.findProcessInstanceByID(id).addDocument(...). Also, as the input to the BPM service is base64, how do I map it?
The other option I tried is with Content Integration Task but again how to map the attributes from the external system to the BPM service?
Also, how can I send back all the files corresponding to an id to the external application?
Any suggestions as to how to achieve this?
Thanks,
The IBM Document Store that use IBM BPM, is a FileNet Express that is installed directly on the Webspehere product where live IBM BPM. You can find the route of the API of the internal Filenet in the documentation of IBM BPM.
The other why is to expose a service that use the content integration services to create (with attibutes), getProperties or getContent to enable you UI with this operations.

How to talk with ABP API from windows service

This is what I would like to build. A hosted web/api project built on APB where tenants can use the web application to define "Scan Definitions" that run inside their network. A scan definition would just contain a target IP Address to be scanned with WMI. They would download and install a windows service that would run periodically in their network. The service would communicate with the APB web API to retrieve scan definitions, then run the scan and upload the resulting scan data into the APB web API. Then the users would be able to view that scan data within the web app.
My question is with the CORS access in place, how can I make it so that the windows service is allowed to talk with the API. Also what is the best way to authenticate the service with api such that the service would know which tenant it should be using so that it pulls down the correct scan definitions and uploads the data to the correct tenant as well.
Thanks in advance for any help or guidance.
I was able to get a service up and running by following the abp sample found here: https://github.com/aspnetboilerplate/aspnetboilerplate-samples/tree/master/ConsoleRemoteWebApiCall/CallApiFromConsole
I still have things to work through, but it's gotten me to a spot where I can access the api from a console application

How to setup Application Insights for on-premise Service Fabric?

Is it possible to add application insights for web api that's hosted on the on-premise version of service fabric?
So far I have tried to add the application insights to my project and wondering where to send for monitoring. It was easy when app is also on cloud.
I believe there is no on-premise application insights service, so even if the web api is hosted on-premise over service fabric; one must use cloud version application insights service, is that correct? In that case can anyone let me know how to setup?
App Insights is only hosted in Azure. If you're looking for an on-premise solution, you're best off looking at using something like the ELK stack (Elastic Search, Logstash and Kabana).
Nonetheless, even though your cluster is hosted on-premise, using Asure App Insights is still very much a valid scenario (assuming your IT organisation is fine with it).
Assuming you're fine with Application Insights, I strongly recommend you have a look at App Insights Service Fabric. It works great for:
Sending error and exception info
Populating the application map with all your services and their dependencies (including database)
Reporting on app performance metrics, as well as,
Tracing service call dependencies end-to-end,
Integrating with native as well as non-native SF applications
One thing however that the above won't solve is providing overall cluster health information - e.g. when/how often nodes go up/down, how much CPU/Memory and disk IO is consumed on individual nodes. For this you could try MS EventFlow or a custom windows service
There is no "on premise" application insights, but as long as your on premise service has access to send outbound data, you can use application insights on your site. You won't be able to use some features, like webtests, because application insights wont be able to make calls into your site.
Setup is the same as always, create an application insights resource in azure, and either configure it in visual studio, or manually set the instrumentation key in your applicationinsights.config (or via code) in your app.
If you need to configure outbound firewall rules or anything to let AI send data, that information is all here: https://learn.microsoft.com/en-us/azure/application-insights/app-insights-ip-addresses

Export list of service connections from Oracle Service Bus in order to create a service model in EA

We have a complex landscape of web services on Oracle Service Bus (latest release). We use JDeveloper to maintain it and we are going to use Enterprise Architect (SparxSystems) to model it. Currently, we only have MS Visio drawings. To make sure our model matches with reality, we would like to have a list of services and service connections exported from the OSB. It would be sufficient to have a list of connections (i.e. which services call which other services) in any format, but it would be great to be able to import this information into Enterprise Architect. Is this possible?
Instead of using JDeveloper, I would suggest to query the Service Bus runtime with the Java API. The API documentation gives samples how to connect and retrieve service configuration, see the Querying resources paragraph when following the link above.
You can list all proxy services and the business services they call, i.e. get their dependencies. In addition you can obtain other service information, which can be handy in the EA model.

Resources