Some more easy stats printing or production tools?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|

Some more easy stats printing or production tools?

GLASS mailing list
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
Mariano,

Great idea!

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"

    | sessionId ar |
  sessionId := System session.       
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale

On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
All,

One of the basic idea of tODE is to provide a smalltalk level api things that would be callable from a number of different applications, while sharing the same basic algorithms. The descriptionOfSessions: call below is a case in point, since the GemStone API returns at array, different users of the array may decide to use different strings. For the tODE command, I made up short labels based on the sentence describing each field in the array, but assuming I've picked good names (not always a good assumption:) all GsDevKit users should be presented with a common set of names for the session description. If you were to call the tODE command API, then that goal would be achieved ...

tODE is much more than just a development GUI ...

This Smalltalk command api idea extends to doing Metacello loads, manipulating packages, searching for methods, etc. So often useful snippets of code gets buried off in workspaces or embedded in the gui for a tool  (whether a Seaside tool or client Smalltalk tool) and each user that comes along has to re-invent things from scratch ... so the command api is intended to provide a common Smalltalk-level api for sharing the fundamental algorithms upon which  GUI tools are built, making it possible for multiple implementations of GUIs to share common functionality as well as make the functionality easily accessible for use in your own production management code ...

I know that it's on me to deliver tODE and I should be finished with my 3.3 commitments this week and will start on the documentation in earnest as soon as I'm done with that to get tODE and GsDevKitHome 1.0.0 ready for consumption ...

Dale

On 06/09/2015 10:02 AM, Dale Henrichs wrote:
Mariano,

Great idea!

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"

    | sessionId ar |
  sessionId := System session.       
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale

On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

Richard Sargent
Administrator
In reply to this post by GLASS mailing list
GLASS mailing list wrote
Mariano,

Great idea!

I took a look at the `gs` command in tODE and here are a couple of more
things that you could provide:

   System gemConfigurationReport.
   System stoneConfigurationReport.
   System clientVersionReport.
   System clientVersionReport.
   System clientVersionReport.
Man! You really want that clientVersionReport!!!
:-)


   "The following provides a desription for the current gemstone gem.
`System currentSessions` provides
     list of all sessionIds in system, so you could also generate a
table of all sessions and their description"

     | sessionId ar |
   sessionId := System session.
   ar := System descriptionOfSession: sessionId.
   ^ Dictionary new
     at: #'userProfile' put: (ar at: 1);
     at: #'gemPid' put: (ar at: 2);
     at: #'gemHost' put: (ar at: 3);
     at: #'gemPrimitiveNumber' put: (ar at: 4);
     at: #'mostRecentTransactionTime' put: (ar at: 5);
     at: #'sessionState' put: (ar at: 6);
     at: #'transactionMode' put: (ar at: 7);
     at: #'onOldestCommitRecord' put: (ar at: 8);
     at: #'sessionSerialNumber' put: (ar at: 9);
     at: #'sessionId' put: (ar at: 10);
     at: #'gciHostIP' put: (ar at: 11);
     at: #'sessionPriority' put: (ar at: 12);
     at: #'gciUniqueHostId' put: (ar at: 13);
     at: #'mostRecetStoneRequest' put: (ar at: 14);
     at: #'sessionLoginTime' put: (ar at: 15);
     at: #'systemCommitsSinceSessionView' put: (ar at: 16);
     at: #'systemDescription' put: (ar at: 17);
     at: #'numTempObjIds' put: (ar at: 18);
     at: #'numTempPageIds' put: (ar at: 19);
     at: #'sessionVoteState' put: (ar at: 20);
     yourself

   Dale

On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
> Hi guys,
>
> I am adding some WEB tools for those users which are very admin or
> developers to my app. So far I added WAObjectLog and now a simple
> component that renders the result of "(Smalltalk at:
> #SystemRepository) fileSizeReport. "
> I wonder which other kind of easy stats or production tool I might be
> missing.
> If there is something else that could be of use to me, please let me
> know. I want to provide as much as possible I have at hand for a small
> amount of effort, to my admin users.
>
> Thanks in advance,
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
> _______________________________________________
> Glass mailing list
> [hidden email]
> http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list


On 06/09/2015 10:44 AM, Richard Sargent via Glass wrote:

> GLASS mailing list wrote
>> Mariano,
>>
>> Great idea!
>>
>> I took a look at the `gs` command in tODE and here are a couple of more
>> things that you could provide:
>>
>>     System gemConfigurationReport.
>>     System stoneConfigurationReport.
>>     System clientVersionReport.
>>     System clientVersionReport.
>>     System clientVersionReport.
> Man! You really want that clientVersionReport!!!
> :-)
>
Haha ... should have been stoneVersionReport and clientVersionReport, too:)

Dale
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
In reply to this post by GLASS mailing list
Hi Dale, 

Thanks for such a great answer. I have just done a little component that renders all of that stuff in simple tables. Do you think it could be useful for others too? if true, then I can push it in the tools production package.

BTW...is there some css class i can use to style tables that come out of the box with Seaside? because I use bootstrap (and actually my own settings to twitter bootstrap)  I ask because without styles it is a bit ugly...but I do not want to couple it with anything.

Thanks in advance, 


On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea!

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"

    | sessionId ar |
  sessionId := System session.       
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
In reply to this post by GLASS mailing list


On Tue, Jun 9, 2015 at 2:30 PM, Dale Henrichs via Glass <[hidden email]> wrote:
All,

One of the basic idea of tODE is to provide a smalltalk level api things that would be callable from a number of different applications, while sharing the same basic algorithms. The descriptionOfSessions: call below is a case in point, since the GemStone API returns at array, different users of the array may decide to use different strings. For the tODE command, I made up short labels based on the sentence describing each field in the array, but assuming I've picked good names (not always a good assumption:) all GsDevKit users should be presented with a common set of names for the session description. If you were to call the tODE command API, then that goal would be achieved ...

tODE is much more than just a development GUI ...

This Smalltalk command api idea extends to doing Metacello loads, manipulating packages, searching for methods, etc. So often useful snippets of code gets buried off in workspaces or embedded in the gui for a tool  (whether a Seaside tool or client Smalltalk tool) and each user that comes along has to re-invent things from scratch ... so the command api is intended to provide a common Smalltalk-level api for sharing the fundamental algorithms upon which  GUI tools are built, making it possible for multiple implementations of GUIs to share common functionality as well as make the functionality easily accessible for use in your own production management code ...

I know that it's on me to deliver tODE and I should be finished with my 3.3 commitments this week and will start on the documentation in earnest as soon as I'm done with that to get tODE and GsDevKitHome 1.0.0 ready for consumption ...


That's cool to hear Dale. If tODE can provide a API / model besides the "Pharo UI" then that's supercool because it means I can, for example, reuse some of tODE "backend" for some seaside components. 

Thanks!

 
Dale


On 06/09/2015 10:02 AM, Dale Henrichs wrote:
Mariano,

Great idea!

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"

    | sessionId ar |
  sessionId := System session.       
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale

On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
In reply to this post by GLASS mailing list


On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea!

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"


Hi Dale,

Is there a way to know which are the seaside gems and the seaside maintenance gem from such a list? Watching the description and everything, I cannot find an easy way of knowing it. The only thing is the gem pid. But then it is not that easy for me to know if such a pid is a seaside gem or not.

Is there a way? I would like to list the seaside gems and their status (if at least one seaside gem works)... (I am thinking if I could do a http request over the exact port and check on timeout).  mmmm maybe I can do a "System perform: " over the monit status. grrrr gemstone doesn't have permissions to execute monit..grr. Ok, I will see... but any idea is appreciated.

Cheers,


Thanks
 
    | sessionId ar |
  sessionId := System session.       
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
You can set the gem description like this in it’s ‘startup script’ (Smalltalk part:)

System _cacheName: '$1_$2’.

The $1 and $2 are env vars in my script that contain the adaptor name and port.
I think this is also in the standard startSeaside30_Adaptor script but I don’t know for sure.

This way, the session name shows up in the stats and should be available where you are looking for it as well I believe.

Johan

On 10 Jun 2015, at 08:31, Mariano Martinez Peck via Glass <[hidden email]> wrote:



On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea! 

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides 
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"


Hi Dale,

Is there a way to know which are the seaside gems and the seaside maintenance gem from such a list? Watching the description and everything, I cannot find an easy way of knowing it. The only thing is the gem pid. But then it is not that easy for me to know if such a pid is a seaside gem or not.

Is there a way? I would like to list the seaside gems and their status (if at least one seaside gem works)... (I am thinking if I could do a http request over the exact port and check on timeout).  mmmm maybe I can do a "System perform: " over the monit status. grrrr gemstone doesn't have permissions to execute monit..grr. Ok, I will see... but any idea is appreciated.

Cheers,


Thanks
 
    | sessionId ar |
  sessionId := System session.        
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




-- 
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list


On Wed, Jun 10, 2015 at 3:37 AM, Johan Brichau via Glass <[hidden email]> wrote:
You can set the gem description like this in it’s ‘startup script’ (Smalltalk part:)

System _cacheName: '$1_$2’.

The $1 and $2 are env vars in my script that contain the adaptor name and port.
I think this is also in the standard startSeaside30_Adaptor script but I don’t know for sure.


Thanks Johan, that was kind of what I was looking for. It seems the startSeaside30_Adaptor does indeed the thing:

System _cacheName: ((x := '$1-' , (GsSession serialOfSession: System session) printString , '-' , System myUserProfile userId) copyFrom: 1 to: (x size min: 31)).

I put a transcript show in there and it should be setting something like  'FastCGI_service-140-userxxx', which is correct.
The problem is that my session descriptions still does not show it. See below.
 
This way, the session name shows up in the stats and should be available where you are looking for it as well I believe.

Where? Where it displays the session name in the stats? From #descriptionOfSession: I do not see it in any field...

Thanks!
 

Johan

On 10 Jun 2015, at 08:31, Mariano Martinez Peck via Glass <[hidden email]> wrote:



On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea! 

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides 
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"


Hi Dale,

Is there a way to know which are the seaside gems and the seaside maintenance gem from such a list? Watching the description and everything, I cannot find an easy way of knowing it. The only thing is the gem pid. But then it is not that easy for me to know if such a pid is a seaside gem or not.

Is there a way? I would like to list the seaside gems and their status (if at least one seaside gem works)... (I am thinking if I could do a http request over the exact port and check on timeout).  mmmm maybe I can do a "System perform: " over the monit status. grrrr gemstone doesn't have permissions to execute monit..grr. Ok, I will see... but any idea is appreciated.

Cheers,


Thanks
 
    | sessionId ar |
  sessionId := System session.        
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




-- 
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list

On 10 Jun 2015, at 11:42, Mariano Martinez Peck <[hidden email]> wrote:

I put a transcript show in there and it should be setting something like  'FastCGI_service-140-userxxx', which is correct.
The problem is that my session descriptions still does not show it. See below.
 
This way, the session name shows up in the stats and should be available where you are looking for it as well I believe.

Where? Where it displays the session name in the stats? From #descriptionOfSession: I do not see it in any field...

I was assuming it could be found somewhere there.
I’ll check after lunch if I can find anything.

I’m pretty interested in this kind of thing too. 
What we do is have a rest api that produces stats (both gemstone and application specific) and we gather that in a pharo-based web app.

Johan

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
In reply to this post by GLASS mailing list
Well this one is a bit convoluted and I will be putting together a tODE command/api to make this a bit easier...

System class>>_cacheName: sets the 'ProcessName' entry in the cacheStatistics array in the SPC. There is a cacheStatitics array in the SPC for each GemStone process. Different processes have different entries in the cacheStatistics array .... To get the descriptions for the cacheStatics for a given process type you use System class>>cacheStatisticsDescriptionForType: (see the comment for the arg to use). For a gem (type 8), there are 223 cacheStats in GemStone 3.2.2 (the stone version I happen to be working with at the moment). The first description is 'ProcessName' and that's where the name can be found...

To get the 'ProcessName' for your current session:

  | cacheStatValues cacheStatDescriptions myProcessName |
  cacheStatValues := System gemCacheStatisticsForSessionId: System session.
  cacheStatDescriptions := System cacheStatisticsDescriptionForType: 8.
  myProcessName := cacheStatValues at: (cacheStatDescriptions indexOf: 'ProcessName')

You can also access cacheStatistics based on pid (cacheStatisticsProcessId:), by gem name (cacheStatsForGemWithName:), etc...

Dale

On 6/10/15 2:42 AM, Mariano Martinez Peck via Glass wrote:


On Wed, Jun 10, 2015 at 3:37 AM, Johan Brichau via Glass <[hidden email]> wrote:
You can set the gem description like this in it’s ‘startup script’ (Smalltalk part:)

System _cacheName: '$1_$2’.

The $1 and $2 are env vars in my script that contain the adaptor name and port.
I think this is also in the standard startSeaside30_Adaptor script but I don’t know for sure.


Thanks Johan, that was kind of what I was looking for. It seems the startSeaside30_Adaptor does indeed the thing:

System _cacheName: ((x := '$1-' , (GsSession serialOfSession: System session) printString , '-' , System myUserProfile userId) copyFrom: 1 to: (x size min: 31)).

I put a transcript show in there and it should be setting something like  'FastCGI_service-140-userxxx', which is correct.
The problem is that my session descriptions still does not show it. See below.
 
This way, the session name shows up in the stats and should be available where you are looking for it as well I believe.

Where? Where it displays the session name in the stats? From #descriptionOfSession: I do not see it in any field...

Thanks!
 

Johan

On 10 Jun 2015, at 08:31, Mariano Martinez Peck via Glass <[hidden email]> wrote:



On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea! 

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides 
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"


Hi Dale,

Is there a way to know which are the seaside gems and the seaside maintenance gem from such a list? Watching the description and everything, I cannot find an easy way of knowing it. The only thing is the gem pid. But then it is not that easy for me to know if such a pid is a seaside gem or not.

Is there a way? I would like to list the seaside gems and their status (if at least one seaside gem works)... (I am thinking if I could do a http request over the exact port and check on timeout).  mmmm maybe I can do a "System perform: " over the monit status. grrrr gemstone doesn't have permissions to execute monit..grr. Ok, I will see... but any idea is appreciated.

Cheers,


Thanks
 
    | sessionId ar |
  sessionId := System session.        
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




-- 
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
It looks like `System cacheStatisticsForAllSlotsShort` is a good shortcut for getting a basic summary for all of the processes attached to the shared cache.

Dale

On 6/10/15 9:44 AM, Dale Henrichs wrote:
Well this one is a bit convoluted and I will be putting together a tODE command/api to make this a bit easier...

System class>>_cacheName: sets the 'ProcessName' entry in the cacheStatistics array in the SPC. There is a cacheStatitics array in the SPC for each GemStone process. Different processes have different entries in the cacheStatistics array .... To get the descriptions for the cacheStatics for a given process type you use System class>>cacheStatisticsDescriptionForType: (see the comment for the arg to use). For a gem (type 8), there are 223 cacheStats in GemStone 3.2.2 (the stone version I happen to be working with at the moment). The first description is 'ProcessName' and that's where the name can be found...

To get the 'ProcessName' for your current session:

  | cacheStatValues cacheStatDescriptions myProcessName |
  cacheStatValues := System gemCacheStatisticsForSessionId: System session.
  cacheStatDescriptions := System cacheStatisticsDescriptionForType: 8.
  myProcessName := cacheStatValues at: (cacheStatDescriptions indexOf: 'ProcessName')

You can also access cacheStatistics based on pid (cacheStatisticsProcessId:), by gem name (cacheStatsForGemWithName:), etc...

Dale

On 6/10/15 2:42 AM, Mariano Martinez Peck via Glass wrote:


On Wed, Jun 10, 2015 at 3:37 AM, Johan Brichau via Glass <[hidden email]> wrote:
You can set the gem description like this in it’s ‘startup script’ (Smalltalk part:)

System _cacheName: '$1_$2’.

The $1 and $2 are env vars in my script that contain the adaptor name and port.
I think this is also in the standard startSeaside30_Adaptor script but I don’t know for sure.


Thanks Johan, that was kind of what I was looking for. It seems the startSeaside30_Adaptor does indeed the thing:

System _cacheName: ((x := '$1-' , (GsSession serialOfSession: System session) printString , '-' , System myUserProfile userId) copyFrom: 1 to: (x size min: 31)).

I put a transcript show in there and it should be setting something like  'FastCGI_service-140-userxxx', which is correct.
The problem is that my session descriptions still does not show it. See below.
 
This way, the session name shows up in the stats and should be available where you are looking for it as well I believe.

Where? Where it displays the session name in the stats? From #descriptionOfSession: I do not see it in any field...

Thanks!
 

Johan

On 10 Jun 2015, at 08:31, Mariano Martinez Peck via Glass <[hidden email]> wrote:



On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea! 

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides 
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"


Hi Dale,

Is there a way to know which are the seaside gems and the seaside maintenance gem from such a list? Watching the description and everything, I cannot find an easy way of knowing it. The only thing is the gem pid. But then it is not that easy for me to know if such a pid is a seaside gem or not.

Is there a way? I would like to list the seaside gems and their status (if at least one seaside gem works)... (I am thinking if I could do a http request over the exact port and check on timeout).  mmmm maybe I can do a "System perform: " over the monit status. grrrr gemstone doesn't have permissions to execute monit..grr. Ok, I will see... but any idea is appreciated.

Cheers,


Thanks
 
    | sessionId ar |
  sessionId := System session.        
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




-- 
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
In reply to this post by GLASS mailing list
Not that I'm aware of.

On 6/9/15 4:35 PM, Mariano Martinez Peck wrote:
Hi Dale, 

Thanks for such a great answer. I have just done a little component that renders all of that stuff in simple tables. Do you think it could be useful for others too? if true, then I can push it in the tools production package.

BTW...is there some css class i can use to style tables that come out of the box with Seaside? because I use bootstrap (and actually my own settings to twitter bootstrap)  I ask because without styles it is a bit ugly...but I do not want to couple it with anything.

Thanks in advance, 


On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea!

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"

    | sessionId ar |
  sessionId := System session.       
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
In reply to this post by GLASS mailing list

On 6/9/15 11:21 PM, Mariano Martinez Peck wrote:
>
> That's cool to hear Dale. If tODE can provide a API / model besides
> the "Pharo UI" then that's supercool because it means I can, for
> example, reuse some of tODE "backend" for some seaside components.
>
> Thanks!
>
That's exactly the intent ... Below is a listing of the man pages for
all of the tODE commands that are available ...

The basic idea is that for each of the commands, there is a command line
interface that is built on top of a Smalltalk api, so it is possible for
you to access the functionality for each of the commands from your own
Smalltalk application. Also for each of the GUI components the menu
items are implemented by using the Smalltalk api for the various
commands, so any functionality available via menu items through the gui,
should be available via command line and/or Smalltalk api ... The bash
shell scripts for GsDevKitHome are also written to call the tODE command
line commands.

So yes, you should be able to build a tool using Seaside that uses the
same API as the tODE GUI and the tODE command line and the GsDevKitHome
bash scripts.

I think that this kind of access to a common api is very important ...

Dale

abort - Abort transaction
bedit - batch edit tool
begin - Begin transaction
break - Method breakpoint management
   break clear - Clear breakpoints
   break disable - Disable breakpoints
   break enable - Enable breakpoints
   break list - List breakpoints
   break remote - Enable/disable remote breakpoints
   break set - Set breakpoints
   break steps - List step points for a method
browse - Find and view classes and methods
   browse categories - List class categories
   browse category - Find and view lists of classes in a category
   browse class - Find and view lists of classes
   browse configurations - List configurations
   browse diff - View differences between two methods
   browse list - View method definitions loaded from nodes
   browse method - Find and view lists of methods matching patterns
   browse package - Find and vew lists of classes in a package
   browse packages - List packages
   browse project - Find and vew lists of classes in a project
   browse references - Find and view lists of methods referencing
certain artifacts
   browse sender - Find and view lists of methods sending particular
messages
   browse source - Find and view strings in method source
   browse symbolDict - Find and view a list of classes in a symbol
dictionary
   browse undeclared - View references to undeclared symbols
   browse variables - Find and view references to instance, class
instance and class variables
   browse versions - Find and view versions of a method
bu - Manage GemStone backups
   bu backup - Make a GemStone backup
   bu directory - Define default backup directory
   bu info - Display info about a particular backup
   bu list - Display info about all backup and snapshot files
   bu remove - Remove backup file from backup directory
   bu restore - Restore from a GemStone backup
   bu snapshot - Make a snapshot of the extent files
cat - Display contents of node
cd - Change node
cls - class management
   cls accessors - Define instance variable getter and setter methods
for the class
   cls category - Move class to a new category
   cls comment - View and define the class comment
   cls copy - Make a copy of a class
   cls create - Create a new class
   cls definition - View and define the class
   cls history - View class history
   cls protocol - Define and modify class protocol
   cls remove - Remove classes
   cls rename - Rename classes
commit - Commit transaction
cp - Copy node
ds - Display node contents (a verbose ls)
edit - Open navigation or text window on object
eval - Evaluate Smalltalk expression
find - Find classes and methods
   find category - Find and view lists of classes in a category
gemtool - Provide GemTools MenuBar functionality
   gemtool bu - Open tODE equivalent of GemTools tools
   gemtool find - Prompt-based variants of the `browse` family of commands
   gemtool menuBar - Emulate GemTools Launcher Menus
   gemtool tools - Open tODE equivalent of GemTools tools
git - execute git commands
gs - execute gemstone commands
   gs configuration - Gem and Stone configuration reports
   gs fileout - Fileout Classes, Categories or Packages
   gs fileSizeReport - Report on repository size and amount of free space
   gs gemtools - Emulate GemTools Launcher Menus
   gs halt - Halt on AlmostOutOfMemory exception
   gs mfc - Perform a Mark for Collection
   gs objectFor - Resolve an object from given objectId
   gs sessionDescription - Session information report
   gs version - OS, hardware and GemStone version attributes for Client,
Gem, or Stone
history - list command history
inspect - Open navigation on object
limit - control char, list, and oops display limits
ls - list node contents
man - produce man page for a command
mc - monticello package commands
method - method management
   method browse - View methods
   method copy - Copy method to another class
   method versions - Open window on method versions
   method move - Move method to another class
   method protocol - Move method to another protocol
   method remove - Remove method
mkdir - create a new internal (directory) node
mm - metacello commands
mmb - metacello baseline commands
mount - mount file directory into tODE object structure
mr - monticello repository commands
mv - move node (rename)
ol - View and manipulate object log entries
   ol clear - Remove object log entries
   ol view - View object log entries
package - Metacello package management support.
pf - control ProfMonitor
port - porting tools (sentButNotImplemented, undefinedSymbols)
project - Metacello project management support.
   project clone - Clone repository (github only)
   project commit - Commit the Metacello project
   project compare -  View differences between repository versions (git
only)
   project diff - View code differences between image and repository
   project entry - Create a new project entry
   project list - List Metacello projects
   project load - Load the Metacello project
   project lock - Lock project registration
   project log - Browse commit log for the Metacello project (git only)
   project prime - Prime the project registry
   project refresh - Refresh project entries in project list
   project registry - Inspect the project registry
   project rehome - Point package repository groups for project to new
repository
   project summary - View report of changed packages and methods
   project validate - Validate the project registrations
   project workdir - Create working directory for project
ps - execute process commands
   ps list - Open a process browser on process instances
pwd - print working node
rename - rename support
repository - Metacello repository management support.
rm - remove node
rsync - Linux-style object structure copying
sh - spawn new shell
stack - access recent command result stack
ston - import/export objects to/from disk (STON format)
test - execute sunit commands
touch - create new leaf node
ts - execute test commands (debug, list, run)
ws - Open workspace on an object

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
In reply to this post by GLASS mailing list


On Wed, Jun 10, 2015 at 3:37 AM, Johan Brichau via Glass <[hidden email]> wrote:
You can set the gem description like this in it’s ‘startup script’ (Smalltalk part:)

System _cacheName: '$1_$2’.


Dale, 
Johan is right. By default in startSeaside30_Adaptor we only include the $1. But the port is very useful too. In fact, I also prefixed it with "Seaside". So in my script it looks like:

run
| x |
"set _cacheName: for Gem to get unique id in statmon output. see http://code.google.com/p/glassdb/issues/detail?id=132"
System _cacheName: ((x := 'Seaside-$1-$2-' , (GsSession serialOfSession: System session) printString , '-' , System myUserProfile userId) copyFrom: 1 to: (x size min: 31)).
%

I would do this by default in GsDevKit/Glass.

Cheers,

 

The $1 and $2 are env vars in my script that contain the adaptor name and port.
I think this is also in the standard startSeaside30_Adaptor script but I don’t know for sure.

This way, the session name shows up in the stats and should be available where you are looking for it as well I believe.

Johan

On 10 Jun 2015, at 08:31, Mariano Martinez Peck via Glass <[hidden email]> wrote:



On Tue, Jun 9, 2015 at 2:02 PM, Dale Henrichs via Glass <[hidden email]> wrote:
Mariano,

Great idea! 

I took a look at the `gs` command in tODE and here are a couple of more things that you could provide:

  System gemConfigurationReport.
  System stoneConfigurationReport.
  System clientVersionReport.
  System clientVersionReport.
  System clientVersionReport.

  "The following provides a desription for the current gemstone gem. `System currentSessions` provides 
    list of all sessionIds in system, so you could also generate a table of all sessions and their description"


Hi Dale,

Is there a way to know which are the seaside gems and the seaside maintenance gem from such a list? Watching the description and everything, I cannot find an easy way of knowing it. The only thing is the gem pid. But then it is not that easy for me to know if such a pid is a seaside gem or not.

Is there a way? I would like to list the seaside gems and their status (if at least one seaside gem works)... (I am thinking if I could do a http request over the exact port and check on timeout).  mmmm maybe I can do a "System perform: " over the monit status. grrrr gemstone doesn't have permissions to execute monit..grr. Ok, I will see... but any idea is appreciated.

Cheers,


Thanks
 
    | sessionId ar |
  sessionId := System session.        
  ar := System descriptionOfSession: sessionId.
  ^ Dictionary new
    at: #'userProfile' put: (ar at: 1);
    at: #'gemPid' put: (ar at: 2);
    at: #'gemHost' put: (ar at: 3);
    at: #'gemPrimitiveNumber' put: (ar at: 4);
    at: #'mostRecentTransactionTime' put: (ar at: 5);
    at: #'sessionState' put: (ar at: 6);
    at: #'transactionMode' put: (ar at: 7);
    at: #'onOldestCommitRecord' put: (ar at: 8);
    at: #'sessionSerialNumber' put: (ar at: 9);
    at: #'sessionId' put: (ar at: 10);
    at: #'gciHostIP' put: (ar at: 11);
    at: #'sessionPriority' put: (ar at: 12);
    at: #'gciUniqueHostId' put: (ar at: 13);
    at: #'mostRecetStoneRequest' put: (ar at: 14);
    at: #'sessionLoginTime' put: (ar at: 15);
    at: #'systemCommitsSinceSessionView' put: (ar at: 16);
    at: #'systemDescription' put: (ar at: 17);
    at: #'numTempObjIds' put: (ar at: 18);
    at: #'numTempPageIds' put: (ar at: 19);
    at: #'sessionVoteState' put: (ar at: 20);
    yourself

  Dale


On 06/09/2015 09:46 AM, Mariano Martinez Peck via Glass wrote:
Hi guys, 

I am adding some WEB tools for those users which are very admin or developers to my app. So far I added WAObjectLog and now a simple component that renders the result of "(Smalltalk at: #SystemRepository) fileSizeReport. "
I wonder which other kind of easy stats or production tool I might be missing.
If there is something else that could be of use to me, please let me know. I want to provide as much as possible I have at hand for a small amount of effort, to my admin users.

Thanks in advance, 


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




-- 
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
This makes sense, I've machine gunned bugs for the open source projects[1][2][3] and submitted a bug to change the scripts shipped with GemStone 3.3 (internal bug 45368):)

Dale

[1] https://github.com/dalehenrich/tode/issues/172
[2] https://github.com/GsDevKit/gsDevKitHome/issues/81
[3] https://github.com/GsDevKit/gsApplicationTools/issues/33

On 6/10/15 12:08 PM, Mariano Martinez Peck via Glass wrote:
run
| x |
"set _cacheName: for Gem to get unique id in statmon output. see http://code.google.com/p/glassdb/issues/detail?id=132"
System _cacheName: ((x := 'Seaside-$1-$2-' , (GsSession serialOfSession: System session) printString , '-' , System myUserProfile userId) copyFrom: 1 to: (x size min: 31)).
%


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

GLASS mailing list
Cool. Thanks.

On Wed, Jun 10, 2015 at 4:35 PM, Dale Henrichs via Glass <[hidden email]> wrote:
This makes sense, I've machine gunned bugs for the open source projects[1][2][3] and submitted a bug to change the scripts shipped with GemStone 3.3 (internal bug 45368):)

Dale

[1] https://github.com/dalehenrich/tode/issues/172
[2] https://github.com/GsDevKit/gsDevKitHome/issues/81
[3] https://github.com/GsDevKit/gsApplicationTools/issues/33

On 6/10/15 12:08 PM, Mariano Martinez Peck via Glass wrote:
run
| x |
"set _cacheName: for Gem to get unique id in statmon output. see http://code.google.com/p/glassdb/issues/detail?id=132"
System _cacheName: ((x := 'Seaside-$1-$2-' , (GsSession serialOfSession: System session) printString , '-' , System myUserProfile userId) copyFrom: 1 to: (x size min: 31)).
%


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Some more easy stats printing or production tools?

Paul DeBruicker
In reply to this post by GLASS mailing list
Other tools for stats if you're looking are

statsd: https://codeascraft.com/2011/02/15/measure-anything-measure-everything/
client:
MCHttpRepository
    location: 'http://ss3.gemtalksystems.com/ss/Statsd'
    user: ''
    password: ''

and https://segment.com
client:
MCHttpRepository
        location: 'http://smalltalkhub.com/mc/pdebruic/SegmentIO/main'
        user: ''
        password: ''


 

GLASS mailing list wrote
> On 10 Jun 2015, at 11:42, Mariano Martinez Peck <[hidden email]> wrote:
>
> I put a transcript show in there and it should be setting something like 'FastCGI_service-140-userxxx', which is correct.
> The problem is that my session descriptions still does not show it. See below.
>  
> This way, the session name shows up in the stats and should be available where you are looking for it as well I believe.
>
> Where? Where it displays the session name in the stats? From #descriptionOfSession: I do not see it in any field...

I was assuming it could be found somewhere there.
I’ll check after lunch if I can find anything.

I’m pretty interested in this kind of thing too.
What we do is have a rest api that produces stats (both gemstone and application specific) and we gather that in a pharo-based web app.

Johan
_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass