Jump to content
fred41

Arma Server Monitor (very small, but useful)

Recommended Posts

Are you able to interface this to a web page?

Haven't looked at it yet, but there must be some function for fetching URLs or no?

Share this post


Link to post
Share on other sites

@Terox, related to the remote viewing capability of ASM:

I have the following idea for a "pure man" solution (UDP):

Given ASM a start param to configure it ether as server (on the device where arma server is) or client (on the device of remote admin).

Client and server will need two additional start params, ip and port from server ASM.

Then let the client, if connected to server, poll the current data from the server ASM periodical and display it for the remote admin.

Do you think this is a useful solution for the common arma server admin?

Edited by Fred41

Share this post


Link to post
Share on other sites

I am not 100% sure what you mean.

I assume you mean

Client connects to the server to play as normal

Client runs the ArmaServerMonitor.exe locally.

This somehow is then fed data from the server?

How will the data be fed to the client?

Share this post


Link to post
Share on other sites

I am talking just about ArmaServerMonitor-client running on device where the admin is sitting (playing or doing something else) and ArmaServerMonitor-server running on device where arma3server.exe is running too.

ASM-client is polling the data from ASM-server via UDP.

Both ASM-server and ASM-client are able to display the data!

Edited by Fred41

Share this post


Link to post
Share on other sites

interesting,

yet I assume Agents aren't calculated into AI counter, so maybe add new counter for that ...

what about object and entities counter ?

maybe add connections count (player who connected & disconnected successfully) next to active players?

Edited by Dwarden

Share this post


Link to post
Share on other sites

I started to focus on values impacting the script interpreter performance in a direct manner.

I think there is a lot potential to show something more from inside the server.

The only limit seems to be, the performance impact of the fetching commands itself.

Minimizing this impact, will still have highest priority in this project.

For counting players and AI, i simple used the "allUnits" and filtered the result by "isPlayer".

Not sure what you mean with "Agent"?

Edited by Dwarden

Share this post


Link to post
Share on other sites

@Dwarden, ok, agents, (this ones used in dayz as zombies). They should of course counted too.

According to the wiki "Return a list of all units (all persons except agents). Dead units and units waiting to respawn are excluded.", "allUnits" seems to not include agents.

Could you suggest an efficient way to count agents too? (Maybe vehicles|isAgent?)

Thanks ...

Share this post


Link to post
Share on other sites

Could you please explain the differences of "simulation frames per second" and "condition evaluations per second" to me?

Share this post


Link to post
Share on other sites
Could you please explain the differences of "simulation frames per second" and "condition evaluations per second" to me?

@Predator.v2, yes.

Simulation frames per second (server FPS) is basically the same, what diag_fps returns on server (and what you get from #monitor x command in game).

A normal value on an empty server is 50.0 FPS, each simulation frame is here a time window of 20ms. Enough time to process the few events (generated by eventhandlers etc.) in full speed (non scheduled),

to process a few statements in the VM (scheduled ececution, execVM, spawn), to eavaluate the conditions from FSMs and something else.

If server load increases more and more, there is a point, when a time frame of 20ms is not enough to process all this.

The length of the time frame must now be extended to process all the additional events e.t.c. (an time frame of 100ms, for example, is equal to 10.0FPS (1/0.1s).

Simple spoken, the server FPS value (1/time frame length) shows you, how much non scheduled load your script interpreter have to process currently.

Condition evaluations per second, on the other hand, is more related to the scheduled part (VM) of script processing.

CPS is a value currently not directly available as a command, but instead measured from an reference FSM.

This reference FSM counts, how frequently an internal condition is evaluated.

On an empty server, conditions are evaluated for each simulation frame (50CPS), but this will change if the load increases.

So this value (CPS) currently indicates two things:

First: what delay you have to expect currently, for all FSM driven units (like AI). I think values above CPS = 5.0 (200 ms delay) should be not critical.

If you see, for example, a CPS value of 0.2 (5000ms = 5sec), you should expect "stupid" AI in your game.

Second: because condition evaluation seems to be scheduled executed, it indicates additional, something like how "loaded" script interpreters VM currently is.

See here for more details (be warned it is a bit fancy): http://forums.bistudio.com/showthread.php?156542-optimization-for-script-interpreter-possible

I think, if you use Arma Server Monitor for a while, with different missions and changing load, you will get very soon a feeling for the practical meaning of FPS and CPS.

Edited by Fred41

Share this post


Link to post
Share on other sites
@killzone_kid, thanks, sounds like a good idea.

EDIT:

But according to this: http://community.bistudio.com/wiki/agents (Note from Rocket bellow)

this: {alive _x} count agents; would return an error

...?

Note that agents returns a reference to the agent itself, not the object

you only need to count them or no?

this will work though

{alive agent _x} count agents;

---------- Post added at 12:40 ---------- Previous post was at 12:23 ----------

Actually ArmA 3 has new command: entities http://community.bistudio.com/wiki/entities

You can use

count entities "Man" (snake is also a Man :))

or count entities "All" (Logic gets returned in this one too)

Unlike As with nearEntities, it will return only alive dead entities too so no need for alive _x check

Edited by Killzone_Kid
entities return dead too

Share this post


Link to post
Share on other sites
you only need to count them or no?

this will work though

{alive agent _x} count agents;

---------- Post added at 12:40 ---------- Previous post was at 12:23 ----------

Actually ArmA 3 has new command: entities http://community.bistudio.com/wiki/entities

You can use

count entities "Man" (snake is also a Man :))

or count entities "All" (Logic gets returned in this one too)

As with nearEntities, it will return only alive entities so no need for alive _x check

... entities looks very interesting, because i am basically most interested in alive ones (which should produce the most load to the script interpreter).

(agents seems to be mainly interesting, to be prepared for the next dayz like mod :)

thanks, for the hint ...

Share this post


Link to post
Share on other sites
because i am basically most interested in alive ones

I'd be a bit concerned otherwise :)

Share this post


Link to post
Share on other sites

LOL

... me and my perfect englisch :rolleyes:

Share this post


Link to post
Share on other sites
LOL

... me and my perfect englisch :rolleyes:

Jokes aside, just tested and entities do return dead entities, while nearentities does not. Sorry for confusion.

Edited by Killzone_Kid

Share this post


Link to post
Share on other sites
Sorry for confusion.

... confusion seems to be bound to occur, if the same term "entities" is used with two different meanings ...

thanks, for testing this

Share this post


Link to post
Share on other sites

minor update:

Graphs for number of players scaled up from max 50 to 100.

So well optimized missions are supported better.

AI graphs are still scaled to max 400.

WIP: introducing a "lag" indicator value, which will show the number and strength of simulation cycle deviations,

for a specific time interval (very likely last minute).

Edited by Fred41

Share this post


Link to post
Share on other sites

Updated version frontpaged on the Armaholic homepage.

===================================================

You are not registered on Armaholic, or at least not that we are aware of. In the future we offer the possibility to authors to maintain their own pages.

If you wish to be able to do this as well please register on Armaholic and let me know about it.

This is not mandatory at all! Only if you wish to control your own content you are welcome to join, otherwise we will continue to follow your work like we have always done ;)

When you have any questions already feel free to PM or email me!

Share this post


Link to post
Share on other sites
Sorry to ask. But i have been looking everywhere. But i am unable to find the armaservermonitor.exe. Can anybody help me with this?

... maybe i can help here ...

All the related files, including a short how to use, are stored in my github repository, see the link in initial post of this thread.

The ArmaServerMonitor.exe particularly here:

https://github.com/fred41/ASM/blob/master/binary/ArmaServerMonitor.exe

Thanks for your reply :)

Share this post


Link to post
Share on other sites

Hello fred41,

Thank you for your quick reply.

Can i ask you one more thing. I edited a batch file to start our server. But i'm not sure if i placed the command line for your mod in the correct place. Can you take a quick look at the batch file code.

start "" /wait "C:\Program Files (x86)\Steam\SteamApps\common\Arma 3\Arma3server.exe" [color="#FF0000"]-mod=@ASM[/color] -profiles=C:\Program Files (x86)\Steam\SteamApps\common\Arma3\Users\ -cfg=basic.cfg -cpuCount=2 -nosound -port=2629 -config=config.cfg -name=9thArmAIIIServerMain

And i'm also not sure if i have to ad the extra parameters to the armaservermonitor.exe. I'm running your tool directly from our dedicated box. In that case no extra parameters like ports need to be added to the .exe right?

Share this post


Link to post
Share on other sites

Hello Winchester Delta_1,

related to ASM, everything looks good in your start line.

But the space in -profiles=C:\Program Files (x86)\Steam\SteamApps\common\Arma3\Users\ could be a problem.

I would recomment here to use an extra folder like c:\A3\serverprofiles for all your profiles.

Correct, additional params for ASM are only necessary if you like to use ASM's remote view capabilities too.

If you start at least one of your server instances and the mission is loaded, you should very soon see all the values in the display of the running ArmaServerMonitor.

If something does not work please just let me know.

Edited by Fred41

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×